Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [php] simpleste lese-schreib Operationen und schleifen :( (https://www.delphipraxis.net/149435-%5Bphp%5D-simpleste-lese-schreib-operationen-und-schleifen.html)

Norbert987 21. Mär 2010 13:29


[php] simpleste lese-schreib Operationen und schleifen :(
 
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

Teekeks 21. Mär 2010 15:24

Re: [php] simpleste lese-schreib Operationen und schleifen :
 
Zitat:

ö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?
Ich kenn zwar die genaue syntax dabei nicht, aber r ist lesen w ist schreiben und rw ist beides.

Probiers mal.

Norbert987 21. Mär 2010 15:34

Re: [php] simpleste lese-schreib Operationen und schleifen :
 
Nee, leider ist "rw" nicht möglich, die Seite wird nicht zuende geladen (hab die Parameter von hier).

omata 21. Mär 2010 15:48

Re: [php] simpleste lese-schreib Operationen und schleifen :
 
Schonmal die Fehlerausgabe aktiviert?
Code:
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);

Norbert987 21. Mär 2010 17:20

Re: [php] simpleste lese-schreib Operationen und schleifen :
 
Hab beide Zeilen am Anfang und am Ende eingefügt, aber die Ausgabe bleibt die gleiche. Was muss ich damit machen?

Teekeks 21. Mär 2010 17:22

Re: [php] simpleste lese-schreib Operationen und schleifen :
 
Da wird dir dann angezeigt was falsch ist.
Da sind dann die Fehler sichtbar :)

Norbert987 21. Mär 2010 17:54

Re: [php] simpleste lese-schreib Operationen und schleifen :
 
Danke, leider kann nicht nichts anderes feststellen:
Code:
Warning: file_get_contents([url]http://www.winfuture.de/[/url] ) [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"
bleibt, es ändert sich halt die Zeilennr. und wenn sich die Seite nicht laden lässt, kann ich auch nichts anderes sehen.

öffne ich die Datei mit $md5_file = fopen("md5/".$host.".md5", "w+"); kommt folgendes:
host: www.winfuture.de
md5: e914e573096ffac00f0f815a6e4c90be
old:
Was updated: string(19) "Request Successful."

öffne ich sie mit "r+", habe ich bei old auch einen MD5 hash.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz