• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Webseite auslesen, aber wie?!

Dadelu

Reinette Coulon
Registriert
06.07.05
Beiträge
939
Guten Abend Zusammen

Seit nun 2 Tagen versuche ich ein Problem zu lösen, aber obwohl es ja bekanntlich Google etc. gibt, finde ich einfach keine Lösung. Vieleicht hat jemand von Euch eine Idee?

Hier die "Aufgabenstellung" :) :

Ich würde gerne von meinem Hosting - Server aus, eine x- beliebige Seite auslesen. Besser gesagt,
deren HTML Inhalt. Sollte ja eigentlich nicht so schwierig sein? Ich kann mich erinnern, diese Parser Aufgabe vor ein paar Jahren mittels JSP gelöst zu haben.. Jetzt müsste es halt mit PHP gehen..

Google hat mir sugeriert, es mal mit: fopen, fread, fclose zu versuchen. Aber ich scheitere komplett daran!

Hier der Code (wie er von der Vorgabe Seite 1:1 kopiert wurde)
Code:
<?php    
    $handle = fopen("http://www.20min.ch/", "r");
    $contents = '';
    while(!feof($handle)) {
              $contents = fread($handle,8192);
    }
   fclose($handle);
?>
Die Seite verläuft sich dann in eine Endlose Schleife mit dieser Ausgabe (einige interne Daten wurden angepasst ;))
Code:
[B]Warning[/B]:  fopen() [[URL="http://www.schwiizerisch.ch/pg_nice/function.fopen"]function.fopen[/URL]]: URL file-access is disabled in the server configuration in [B]/home/XX/public_html/pg_nice/sendMessage.php[/B] on line [B]2[/B]
<br>
[B]Warning[/B]:  fopen([URL]http://www.20min.ch/[/URL]) [[URL="http://www.schwiizerisch.ch/pg_nice/function.fopen"]function.fopen[/URL]]: failed to open stream: no suitable wrapper could be found in [B]/home/XX/public_html/pg_nice/sendMessage.php[/B] on line [B]2[/B]
<br>
[B]Warning[/B]:  feof(): supplied argument is not a valid stream resource in [B]/home/XX/public_html/pg_nice/sendMessage.php[/B] on line [B]4[/B]
Und dies wiederholt sich wie gesagt unendlich...

Kann mir jemand helfen? Wäre wirklich sehr, sehr, sehr dankbar :)

MfG , Dadelu
 
Die PHP-Konfigurationsvariable allow_url_fopen sollte wohl auf true stehen.
 
Hmm kann ich dies überhaupt selbst einstellen? Glaube ja eher nicht? Oder gibt es noch andere Varianten für mein "Problem"?
 
Das weiß ich nicht. Mit einem php_info() kannst du jedenfalls mal den eingestellten Wert der Variable auslesen. Bin mir ziemlich sicher dass es daran liegt - steht auch so ungefähr im Manual.
 
Versuch es mal mit .htaccess
Schreib mal php_admin_flag allow_url_fopen on in eine Textdatei, speicher sie als .htaccess und lege sie in deinen Webroot.
 
Ok, Danke für den Hinweis, werde es Heute Abend mal ausprobieren mit der .htaccess Datei :)
 
Ansonsten sieht es schlecht aus, denn sogar http://de3.php.net/manual/de/function.file-get-contents.php braucht allow_url_fopen = "1" :)


Wenn dein Provider dir erlaubt die php.ini via ini_set zu verändern dann dürfte auch folgendes funktionieren:
Code:
if(ini_get('allow_url_fopen') != 1)
{
 @ini_set('allow_url_fopen', '1');
 if(ini_get('allow_url_fopen') != 1)
 {
  die("Please set the variable 'allow_url_fopen' to the value 1");
 }
}
 
Noch eine kleine Frage: Falls das mit fopen dann klappt, muesste es nicht eher ...

Code:
$contents .= fread($handle, 8192);
... heissen?
 
Mal was anderes: du möchtest die Inhalte der Seite auslesen? Warum verwendest du dann nicht einfach die RSS-Datei? Ist ja eigtl. dafür da...
 
Hallo!

curl wäre da noch eine möglichkeit:

Code:
	$url = "http://www.whatevermysitemaybe.com/rss.xml";
	$ch = curl_init($url); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_TIMEOUT, 3);
	$buffer = curl_exec($ch);
	curl_close($ch);

lg