Andreas: Seiteninhalt auswerten

Hallo,
wie kann ich den Inhalt einer PHP-Seite auswerten, von der ich den Link habe?
Habe eine php Datei eines Kollegen der mir so News-Daten zur Verfügung stellt als ein Textstring mit Trennzeichen.

Andreas

  1. hy
    das hängt ganz davon ab was dir die seite zurück gibt.
    bekommst du die komplette html seite oder nur den daten arry zurück.

    du musst den link so oder so mit
    file()  einlesen und dann den in der file->var befindlichen array auslesen .
    zeile für zeile.
    und dann das ganze mit
    explode() zerlegen.

    nun kannst du die daten verwenden
    uwi

    1. Hallo,
      danke für die Antwort.
      Gruß Andreas

    2. Hallo,
      klappt irgendwie nicht.
      Hier mein Code:

      <?php
      $url = "http://www.Domain.net/news.php";
      if (file_exists($url)){
      $file = fopen($url,"r");
      if ($file){
       while (!feof($file)) {
          $zeile = fgets($file,255);
          print "$zeile<br>\n";
       }
       fclose($file);
      }
      else
      echo "nix";
      }
      ?>

      1. Hello,

        klappt irgendwie nicht.
        Hier mein Code:

        <?php
        $url = "http://www.Domain.net/news.php";
        if (file_exists($url)){

        http://de3.php.net/manual/en/function.file-exists.php

        file_exists arbeitet erst ab PHP 5 auch als Wrapper für die Socket-Funktionen, also mit URLs
        Bei PHP 4 muss das geprüfte File im lokalen Directory zu finden sein

        $file = fopen($url,"r");
        if ($file){
         while (!feof($file)) {
            $zeile = fgets($file,255);
            print "$zeile<br>\n";
         }
         fclose($file);
        }
        else
        echo "nix";
        }
        ?>

        Das ganze ist trotzdem unpraktisch programmiert.

        $filehandle = fopen($url,"r");
         If(!$filehandle)
         {
           ## Fehlerbehandlung
         }
         else
         {
           $filecont = @fread($filehandle,MAXFILESIZE);
         }

        und wenn dann $filecont etwas enthält auf dem System zerlegen lassen und dann ausgeben.

        MAXFILESIZE könntest Du z.B. mit 2MB festlegen. Das passt bei einigermaßen sinniger Programmierung dann meistens noch. die Funktion fread() hört ohnehin auf zu lesen, wenn eof() erreicht ist.

        Man könnte dann, um sicher zu gehen, nach dem fread() noch $php_errormsg abfragen, ob eine Exception aufgetreten ist. Das funktioniert aber nur, wenn track_errors=1 steht in der php.ini.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo,
          das ist nun mein Code:
          <?php
          $url = "http://www.domain.net/partner/news_am.php";
           $filehandle = fopen($url,"r");
           If(!$filehandle)
           {
             ## Fehlerbehandlung
             echo "Fehler";
           }
           else
           {
             $filecont = @fread($filehandle);
           }
          echo $filecont;
          ?>
          Das Ergebnis ist dass Fehler ausgegeben wird.

          Andreas

          1. Hello,

            Hallo,
            das ist nun mein Code:

            <?php

            ini_set("track_errors","1");
               error_reporting(E_ALL);

            $url = "http://www.domain.net/partner/news_am.php";
             $filehandle = fopen($url,"r");
             If(!$filehandle)
             {
               ## Fehlerbehandlung

            echo "Fehler: $php_errormsg";

            }
             else
             {
               $filecont = @fread($filehandle);
             }
            echo $filecont;
            ?>
            Das Ergebnis ist dass Fehler ausgegeben wird.

            Dann ändere den Code nochmal so wie oben...
            Ich vermute, dass die fopen-Wrapper für URLs nicht zugelassen sind.
            Siehe php.ini z.B. mit phpinfo();

            allow_url_fopen  ist wohl der Wert, der dafür in Frage kommt.
            Lass Dir den mal ausgeben

            echo "URL-Wrapper: ".ini_get("allow_url_fopen");

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hallo,
              hier die Antwort:
              URL-Wrapper: off
              Ich gehe mal davon aus, dass man das auch nicht ändern kann?

              Gruß Andreas

              1. Hello,

                hier die Antwort:
                URL-Wrapper: off
                Ich gehe mal davon aus, dass man das auch nicht ändern kann?

                die Frage kannst Du Dir
                a) durch Experiment
                b) durch Nachlesen

                beantworten.

                a)

                <?php

                ini_set("track_errors","1");
                  error_reporting(E_ALL);
                  ini_set("allow_url_fopen");
                  echo "Allow URL: ".ini_get("allow_url_fopen");   ## wenn man überhaupt soweit kommt *gg*

                $url = "http://www.domain.net/partner/news_am.php";
                  $filehandle = fopen($url,"r");
                  If(!$filehandle)
                  {
                    ## Fehlerbehandlung
                    echo "Fehler: $php_errormsg";
                  }
                  else
                  {
                    $filecont = @fread($filehandle);
                  }
                  echo $filecont;
                ?>

                b)

                http://de2.php.net/manual/en/function.ini-set.php

                Da steht "PHP_INI_SYSTEM" => Entry can be set in php.ini or httpd.conf

                Dann musst Du ggf eine Socket-Funktion bemühen. Was anderes macht ja fopen() im Falle einer URL auch nicht. In Wirklichkeit verstecken sich hinter fopen() ja verschiedene Öffnungsmechanismen.

                http://de2.php.net/manual/en/function.fsockopen.php

                Und da findest Du bestimmt diverse Beispiele bei Könttopp (oder heißt der Köhntropp ? Sorry)

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. Hello,

                  <?php

                  ini_set("track_errors","1");
                    error_reporting(E_ALL);

                  ini_set("allow_url_fopen","1");

                  echo "Allow URL: ".ini_get("allow_url_fopen");   ## wenn man überhaupt soweit kommt *gg*

                  Sorry, den Parameter muss man natürlich auch angeben. Abr es wird wohl nicht funktionieren.

                  Liebe Grüße aus http://www.braunschweig.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  1. Hallo,
                    na ich habs mir gedacht.
                    nix geht.
                    hier ein Auszug:
                    Warning: ini_set, ini_alter, ini_restore, diskfreespace, disk_free_space, exec, passthru, system, popen() has been disabled for security reasons in /raid/domains/de/a/access-o-mania/htdocs/www/tst2.php on line 4

                    Trotzdem danke für deine Mühe.
                    Gruß Andreas

                    1. Hello,

                      na ich habs mir gedacht.
                      nix geht.
                      hier ein Auszug:
                      Warning: ini_set, ini_alter, ini_restore, diskfreespace, disk_free_space, exec, passthru, system, popen() has been disabled for security reasons in /raid/domains/de/a/access-o-mania/htdocs/www/tst2.php on line 4

                      Dann wird wohl auch der safe_mode laufen, oder hatte ich das schon gefragt?

                      Aber die Möglichkeiten mit fsockopen() solltetst Du Dir nochmal anschauen und dann hier auch mal das Ergebnis bekannt geben. Da sind fast fertige Copy and Paste Beispiele im Manual.

                      Liebe Grüße aus http://www.braunschweig.de

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                      Nur selber lernen macht schlau
                      1. Hallo,
                        werd ich auch machen.
                        Wenn ich nur mehr Zeit hätte.
                        In einer Woche habe ich 2 Klausuren auf die ich noch lernen muss.

                        Gruß Andreas