Einzelnen Beitrag anzeigen

Norbert987

Registriert seit: 27. Nov 2003
Ort: Aachen
74 Beiträge
 
Delphi 7 Professional
 
#1

[php] simpleste lese-schreib Operationen und schleifen :(

  Alt 21. Mär 2010, 13:29
Hallo Zusammen,

ich bin dabei, mir ein php Skript zu schreiben, welches mich bei Änderungen von Homepages auf dem Handy benachrichtigt. Mit einer zu überwachenden Homepage läuft das problemlos, sind es mehrere gibt es Probleme. Es wäre toll, wenn jemand mal drüber schauen könnte:

Code:
<?php
  include('ProwlPHP.php');
 
  $seiten_file = file("seiten.txt");
 
  for ($i=0; $i<count($seiten_file); $i++) {
    // erstelle neue md5
    echo $seiten_file[$i]."
";
   
    $page = $seiten_file[$i];
    $md5  = md5(file_get_contents($page));
    $tmp = parse_url($seiten_file[$i]);
    $host = $tmp["host"];
   
    echo "host: ".$host."
";
    echo " md5: ".$md5."
";

    // lese alte md5
    $md5_file = fopen("md5/".$host.".md5", "r+");
    while (!feof($md5_file)) {
      $old_md5 = fgets($md5_file, 1024);
    }
   
    echo " old: ".$old_md5."
";

    // pushe, falls old_md5 != md5
    if ($old_md5 == $md5) {
      echo "Nothing to do: ";
    } else {
      echo "Was updated:  ";
      fseek($md5_file, 0);
      fwrite($md5_file, $md5);
      $prowl = new Prowl('<userid>');
      $prowl->push(array('application'=>'Homepage Watch',
                         'event'=>'Information',
                         'description'=>"Es gibt neue Informationen auf ".$host,
                         'priority'=>0
                         ));
      var_dump($prowl->getError());
    }
    echo $host."

";
    fclose($md5_file);
  }

?>
In seiten.txt werden pro Zeile eine zu überwachende URL eingegeben, hier sind 2 Zeilen drin.

Probleme sind folgende:
[Zeile 11] $md5 = md5(file_get_contents($page));
gibt folgendes aus: Warning: file_get_contents(http://www.winfuture.de/ ) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /var/www/web6/html/iPhone/check2.php on line 11

Tausche ich nun beide Zeilen, gibt wieder das erste Proleme. Lasse ich die For-Schleife bei 1 beginnen, fehlt natürlich die 0te Zeile. Lasse ich diese frei, kommt der gleiche Fehler wieder

[Zeile 19] $md5_file = fopen("md5/".$host.".md5", "r+");
öffne ich die Datei mit "w+", kann er schreiben aber nicht lesen, öffne ich sie mit "r+", öffnet er sie, kann sie aber nicht anlegen, obwohl laut Doku "w+" anlegen, schreiben und lesen bedeuten sollte - was mache ich falsch?

Vielen Dank, Tobias
  Mit Zitat antworten Zitat