file_get_contents Fehler

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

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