• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> 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
 

Hairy

Sonnenwirtsapfel
Registriert
07.08.07
Beiträge
2.397
Die PHP-Konfigurationsvariable allow_url_fopen sollte wohl auf true stehen.
 

Dadelu

Reinette Coulon
Registriert
06.07.05
Beiträge
939
Hmm kann ich dies überhaupt selbst einstellen? Glaube ja eher nicht? Oder gibt es noch andere Varianten für mein "Problem"?
 

Hairy

Sonnenwirtsapfel
Registriert
07.08.07
Beiträge
2.397
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.
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
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.
 

Dadelu

Reinette Coulon
Registriert
06.07.05
Beiträge
939
Ok, Danke für den Hinweis, werde es Heute Abend mal ausprobieren mit der .htaccess Datei :)
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
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");
 }
}
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Noch eine kleine Frage: Falls das mit fopen dann klappt, muesste es nicht eher ...

Code:
$contents .= fread($handle, 8192);
... heissen?
 

Hairy

Sonnenwirtsapfel
Registriert
07.08.07
Beiträge
2.397
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...
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
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