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