file_get_contents funktioniert nicht für eine URL

8

Ich benutze file_get_contents in PHP. Im folgenden Code in der ersten URL funktioniert gut, aber die zweite funktioniert nicht.

%Vor%

Irgendwelche Vorschläge, warum die zweite nicht funktioniert?

    
Parixit 28.06.2013, 11:21
quelle

3 Antworten

8

URL, die nicht von file_get_contents abgerufen wird, weil ihr Server überprüft, ob die Anfrage vom Browser oder einem Skript kommt. Wenn sie eine Anfrage vom Skript gefunden haben, deaktivieren sie einfach den Seiteninhalt.

Also muss ich eine Anfrage ähnlich wie bei einer Browseranfrage stellen. Also habe ich folgenden Code verwendet, um den 2. URL-Inhalt zu erhalten. Es kann für verschiedene Webserver anders sein. Weil sie vielleicht andere Überprüfungen behalten.

Warum versuchen Sie nicht, den folgenden Code zu verwenden? Wenn du Glück hast, könnte das für dich funktionieren!

%Vor%

Danke allen für die Anleitung.

    
Parixit 29.06.2013, 05:18
quelle
2

Leider scheint die zweite Seite den Zugriff von unbekannten Browsern zu blockieren. Sogar die Verwendung von curl von der Befehlszeile funktioniert nicht:

%Vor%

gibt:

%Vor%

aber kein Inhalt. Beachten Sie, dass es den Status 200 zurückgibt. Wenn Sie also die zurückgegebene Zeichenfolge für boolean === false überprüfen, um festzustellen, ob sie fehlgeschlagen ist, wird sie tatsächlich so aussehen, als ob sie funktioniert hätte.

Wenn Sie das Useragent (und möglicherweise andere Dinge) fälschen müssen, um die URL zu erhalten, um Ihre Anfrage zu akzeptieren, müssen Sie den Sprung mit den Curl-Bibliotheken wagen und verschiedene Kombinationen ausprobieren, um zu versuchen, es zum Laufen zu bringen. Das Experimentieren, um zu sehen, was zuerst mit der curl-Befehlszeile funktioniert, wäre auch eine gute Möglichkeit, die Entwicklungszeit bei der Untersuchung zu reduzieren.

Hier ist jemand, der das schon einmal durchgemacht hat:

php curl: Wie kann ich eine get-Anfrage genau wie einen Web-Browser emulieren?

    
fquinner 28.06.2013 12:21
quelle
1

sieht aus wie die zweite URL manchmal zu langsam antwortet, vielleicht Weiterleitungen. Versuchen Sie, Curl zu verwenden und ein größeres Timeout festzulegen. Wende Fehler auch auf

%Vor%     
13DaGGeR 28.06.2013 11:58
quelle

Tags und Links