Steffi: Warum funktioniert dieses kurze PHP-Script nicht?

Hallo, dieses Script...

<?
$fd= fread(fopen("http://www.google.de/search?q=hallo", "r"), 100000);
echo $fd;
?>

... liefert diese Fehlermeldung ...

Warning: fopen("http://www.google.de/search?q=hallo", "r") - Error 0 in /xyz/google.php on line 2
Warning: Supplied argument is not a valid File-Handle resource in /xyz/google.php on line 2

... ich bin total am verzweifeln am tun. Ich hab es auch schon mit urlencode versucht - ohne Erfolg. Hilfe!

Steffi

  1. Hallo Steffi,

    wieso machst Du nicht zwei Zeilen daraus?

    Ein Filehandle wird der Funktion fread() immer als Call-by-Reference übergeben. Das heißt, dass fread unter dem Handle ständig Veränderungen durchführen will, also darauf schreiben können muss.

    Wenn Du jetzt die Funktion fopen() als Lieferant für das Handle einsetezt, wird die immer wieder aufgerufen.

    Um einen Eintrag in der Handletabelle anlegen zu können, benötigt fopen() also eine statische Variable (Anker).

    <?

    $fh = fopen("http://www.google.de/search?q=hallo", "r");
    if ($fh)
    {

    $fd= fread($fh,100000);

    fclose($fh);
    }

    echo $fd;
    ?>

    Aber die Anregung, ao auf Gooh´gle zuzugreifen, find ich gut.

    Grüße

    Chris©

    1. Hi!

      Aber die Anregung, ao auf Gooh´gle zuzugreifen, find ich gut.

      Wird nur nicht gerne gesehen: http://www.google.de/intl/de/terms.html

      Grüße
      Andreas

      1. Hallo Andreas,

        manche Websites sind eben DUrch Menschen gemacht, und man hat keinen Einfluss darauf, was sich dahinter verbirgt. Gut. Das vereinfacht das Leben!

        Manche Programme sind eben auch von Menschen gemacht, um das Leben zu vereinfachen. Und darauf hat eben Google auch keinen Einfluss. Pech.

        Ich glaube nicht, dass es einen Unterschid macht, ob ich meinen Computer per Hand, per Sprachsteuerung, per Gedankenübertragung, per Gewohnheit, per Fuß, per Mund, per Augenkontakt etc bediene.

        Ein Script ist also nur eine Protese für Leute, die nicht so schnell tippen können.

        Grüße

        Chris©

        1. Hi!

          Ein Script ist also nur eine Protese für Leute, die nicht so schnell tippen können.

          da steht z.B.:
          "Sie dürfen außerdem die Ergebnisse einer Google-Suche nicht umformatieren und dann darstellen oder einen Mirror der Google-Homepage oder von Ergebnisseiten auf Ihrer Website anlegen. Außerdem dürfen Sie keine "Meta-Suche" mit Google durchführen"

          oder auch:
          "Ohne im Voraus eine Erlaubnis von Google erhalten zu haben, dürfen Sie keine automatisierten Anfragen irgendeiner Art an Googles System senden."

          IMHO ist das eine "automatisierte Abfrage", aber gut, ich wollte es auch nur der Vosständigkeit halber erwähnen.

          Und wenn Du drauf anspielst dass das Script auch nicht anderes als ein Browser ist, dann ist das rein technisch vielleicht zu vertreten, aber rechtlich ist es halt was anders. Und ich kann es auch gut verstehen.

          Grüße
          Andreas

  2. Hallo Steffi,

    <?
    $fd= fread(fopen("http://www.google.de/search?q=hallo", "r"), 100000);
    echo $fd;
    ?>

    Das Script läuft bei mir (local) einwandfrei. Dein Problem wird meiner Meinung nach durch eine Sicherheitseinstellung verursacht.

    Schau mal unter http://www.php.net/manual/de/function.fopen.php und http://www.php.net/manual/de/ref.filesystem.php#ini.allow-url-fopen nach.

    Überprüfen kannst du diese Option mit ini_get() http://www.php.net/manual/de/function.ini-get.php und ändern mit ini_set()

    Viele Grüße

    Antje