PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fsockopen + html



Brujah
03-08-2007, 13:58
Hallo Leute,

ich versuche mit einem php Script eine webseite auszulesen.
Ich möchte den Inhalt darin verarbeiten.

Das Probiere ich:


$fp = fsockopen ("www.lostlabyrinth.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fputs ($fp, "GET / HTTP/1.0\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}

Bekomme aber das hier zurück:

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/robot/parser.php on line 44

Warning: fsockopen() [function.fsockopen]: unable to connect to www.computerbild.de/user/registrierung_13328.html:80 (Unknown error) in /var/www/robot/parser.php on line 44
(137162028)

Muss ich dazu meine php Einstellungen ändern?
Oder geht was ich will garnicht auf diese Weise?

ClausVB
05-08-2007, 13:38
Muss ich dazu meine php Einstellungen ändern?
Oder geht was ich will garnicht auf diese Weise?

Zu Frage 1: Vielleicht.

Ich würde vorschlagen mit
file_get_contents — Liest die gesamte Datei in einen String (http://de3.php.net/manual/de/function.file-get-contents.php)
zu arbeiten.

Für eine Verarbeitung des Inhalts bietet sich auch
file — Liest eine Datei komplett in ein Array (http://de3.php.net/manual/de/function.file.php)
an, denn diese Funktion liest den Inhalt in einen Array. Damit kannst Du dann Zeilen überspringen, andere bearbeiten und noch andere unberührt lassen.

Quellcode von php.net:

<?php
// Liest eine Datei in ein Array. Hier gehen wir über HTTP, um die
// HTML Datei einer URL zu bekommen
$lines = file ('http://www.example.com/');

// Durchgehen des Arrays und Anzeigen des HTML Source inkl. Zeilennummern
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
}

// Ein anderes Beispiel: Einlesen einer Webseite in einen String.
// Siehe auch file_get_contents().
$html = implode ('', file ('http://www.example.com/'));
?>
(Quellcode von php.net)

Denk bitte daran, dass Du damit auch fremde Webseiten auslesen kannst, aber Inhalte und Bilder immer einem Copyright unterliegen. Auch GPL-Software bezieht nur den Source-Code auf die GPL, Bilder und Inhalte (des phpBB beispielsweise) unterliegen nicht der GPL.

Gruß
Claus

Brujah
06-08-2007, 09:08
Damit hab ich das jetzt gemacht und es funktioniert super.
Vielen Dank für diesen Tip.