Hallo Experten,
ich habe leider ein Problem beim Auslesen von manchen Internetseiten.
$data = file_get_contents("http://de.wikipedia.org/wiki/Deutschland" );
funktioniert zum Beispiel nicht.
Das hier
$data = file_get_contents("http://de.wikipedia.org/wiki/Albert_Einstein" );
funktioniert.
Ich denke, dass es an Sonderzeichen im Artikel liegt (bin mir aber nicht sicher).
Weiß irgendwer von euch, wie ich das Problem beheben kann?
Mit freundlichen Grüßen
Polonium7.2
Danke schon Mal im Voraus.
Ich habe mal beide Artikel mit der Funktion getheaders untersucht und festgestellt das Albert Einstein als html Mime Type ausgeliefert wird.
Albert
Array ( [0] => HTTP/1.0 200 OK [1] => Date: Fri, 18 May 2012 09:13:59 GMT [2] => Server: Apache [3] => X-Content-Type-Options: nosniff [4] => Cache-Control: private, s-maxage=0, max-age=0, must-revalidate [5] => Content-Language: de [6] => Vary: Accept-Encoding,Cookie [7] => Last-Modified: Thu, 17 May 2012 16:24:42 GMT [8] => Content-Length: 231265 [9] => Content-Type: text/html; charset=UTF-8 [10] => X-Cache: MISS from sq65.wikimedia.org [11] => X-Cache-Lookup: HIT from sq65.wikimedia.org:3128 [12] => Age: 178671 [13] => X-Cache: HIT from amssq38.esams.wikimedia.org [14] => X-Cache-Lookup: HIT from amssq38.esams.wikimedia.org:3128 [15] => X-Cache: MISS from amssq35.esams.wikimedia.org [16] => X-Cache-Lookup: MISS from amssq35.esams.wikimedia.org:80 [17] => Connection: close )
Dieser Artikel als gzip und müsste vor der Auslieferung mit gzdecode dekomprimiert werden.
Deutschland
Array ( [0] => HTTP/1.0 200 OK [1] => Date: Sun, 20 May 2012 09:50:13 GMT [2] => Server: Apache [3] => X-Content-Type-Options: nosniff [4] => Cache-Control: private, s-maxage=0, max-age=0, must-revalidate [5] => Content-Language: de [6] => Vary: Accept-Encoding,Cookie [7] => Last-Modified: Sun, 20 May 2012 09:22:13 GMT [8] => Content-Encoding: gzip [9] => Content-Length: 163182 [10] => Content-Type: text/html; charset=UTF-8 [11] => X-Cache: MISS from sq61.wikimedia.org [12] => X-Cache-Lookup: MISS from sq61.wikimedia.org:3128 [13] => Age: 3697 [14] => X-Cache: HIT from amssq42.esams.wikimedia.org [15] => X-Cache-Lookup: HIT from amssq42.esams.wikimedia.org:3128 [16] => X-Cache: MISS from knsq24.knams.wikimedia.org [17] => X-Cache-Lookup: MISS from knsq24.knams.wikimedia.org:80 [18] => Connection: close )
Ich kann Dir da leider nicht helfen
Habs selbst noch nicht probiert
file_get_contents funktioniert nicht mit Wikipedia. Verwende statt dessen die cURL-Bibliothek.
Gruß,
Jan
Leider weiß ich das nicht,
was ich schade finde.
Wenn du es raus hast,
würde ich gern die Lösung erfahren.
Leider kann ich da nicht weiterhelfen.
Grüße
Soweit ich weiß, hat das was mit der allow_url_fopen option in der php.ini beim Server zu tun.
Vielleicht werden die unteschiedlichen Wiki Artikel auf verteilten Servern gehostet?
Angeblich soll es mit curl klappen.
Ich habs aber nicht probiert.
Hier wird das Problem ausführlich diskutiert:
http://stackoverflow.com/questions/697472/file-get-c…
Gruß, Regina
Shakal
20. Mai 2012 um 19:10
8
Zum eingrenzen deiner Vermutung würde ich selbst zwei unterschiedliche Seiten erstellen, und dann testen, eine mit Sonderzeichen, eine Ohne.
Detailierter kann ich dir hier leider nicht helfen.
Hallo
Vielen vielen Dank
Die Website hat mir sehr weitergeholfen.
Gruß
Polonium7.2
Hallo
Ein anderer Experte konnte mir mit dieser Seite weiterhelfen:
http://stackoverflow.com/questions/697472/file-get-c…
Gruß
Polonium7.2
Leider weiß ich das nicht,
was ich schade finde.
Wenn du es raus hast,
würde ich gern die Lösung erfahren.
Hallo,
danke für den Tipp.
Das funktioniert prima.
Mit freundlichen Grüßen
Polonium7.2
Hallo,
ein anderer Experte hat mir diesen Tipp gegeben:
http://stackoverflow.com/questions/697472/file-get-c…
Deines habe ich deshalb nicht getestet. Aber trotzdem Danke für die Antwort.
Mit freundlichen Grüßen
Polonium7.2
Versuchs doch lieber mit curl - vorausgesetzt es ist auf Deinem Webserver aktiviert.
$url = „http://de.wikipedia.org/wiki/Deutschland “;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,CURLOPT_USERAGENT,‚Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1‘);
$data = curl_exec($ch);
echo ($data);
curl_close($ch);
echo " SPLIT ";
$url = „http://de.wikipedia.org/wiki/Albert_Einstein “;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,CURLOPT_USERAGENT,‚Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1‘);
$data = curl_exec($ch);
echo ($data);
curl_close($ch);
Danke
Das hat mir ein anderer Experte auch schon empfohlen.
Das funktioniert Super.
Gruß
Polonium7.2
Für soetwas sind sperren einbaubar bei meiner webseite z.b.
Hab ich auch so eine sperre drin, aber nur im hauptverzeichniss, unterseiten sind daduch nicht geschützt…
Hoffe konnte dir weiterhelfen
Ein anderer Experte hat mir diesen Tipp gegeben:
http://stackoverflow.com/questions/697472/file-get-c…
Damit geht das wunderbar.
Gruß
Polonium7.2
Hallo, an den Sonderzeichen solte es nicht liegen. Bekommst du eine Fehlermeldung ?
Um das prüfen bruche ich dein gesamtes Script, da es sonst ein zu hoher Aufwand wäre.
Mit freundlichen Grüßen
Friedrich Hofmann