Irgendwelche Vorschläge, warum der zweite nicht funktioniert?
Was ist also die zweite URL, die tatsächlich widerhallt? Oder bekommst du irgendwelche Fehlermeldungen?
– Mark Baker
28. Juni ’13 um 11:25
Was meinst du mit “funktioniert nicht”?
– Andrej Bestuzhev
28. Juni ’13 um 11:25
Bitte öffnen Sie beide URLs im Browser. Beide geben HTML-Seite zurück.
– Parixit
28. Juni ’13 um 11:27
vielleicht haben sie Nicht-Browser-Anfragen blockiert 😛
– Dino Babu
28. Juni ’13 um 11:34
@DBK Wenn ja, gibt es eine andere Möglichkeit, dies zu tun?
– Parixit
28. Juni ’13 um 11:35
Parixit
URL, die von file_get_contents nicht abgerufen wird, da deren Server überprüft, ob die Anfrage vom Browser oder einem Skript stammt. Wenn sie eine Anfrage vom Skript gefunden haben, deaktivieren sie einfach den Seiteninhalt.
Damit muss ich eine Anfrage ähnlich einer Browseranfrage stellen. Also habe ich den folgenden Code verwendet, um den Inhalt der zweiten URL zu erhalten. Es kann für verschiedene Webserver unterschiedlich sein. Weil sie möglicherweise verschiedene Schecks halten.
Aber warum versuchen Sie nicht, den folgenden Code zu verwenden! Wenn Sie Glück haben, könnte dies für Sie funktionieren! !
Leider sieht es so aus, als ob die zweite Site den Zugriff von nicht erkannten Browsern blockiert. Auch die Verwendung von curl über die Befehlszeile funktioniert nicht:
aber kein Inhalt. Beachten Sie, dass der Status 200 zurückgegeben wird. Wenn Sie also den zurückgegebenen String auf boolean === false überprüfen, um festzustellen, ob er fehlgeschlagen ist, wird es tatsächlich so aussehen, als ob es funktioniert hätte.
Wenn Sie den Useragent (und möglicherweise andere Dinge) fälschen müssen, um zu versuchen, die URL dazu zu bringen, Ihre Anfrage zu akzeptieren, müssen Sie den Sprung mit den curl-Bibliotheken wagen und verschiedene Kombinationen ausprobieren, um zu versuchen, dass es funktioniert. Zu testen, was zuerst mit der curl-Befehlszeile funktioniert, wäre auch eine gute Möglichkeit, die Entwicklungszeit bei der Untersuchung dieses Problems zu verkürzen.
Hier ist jemand, der das schon einmal durchgemacht hat:
php curl: Wie kann ich eine Get-Anfrage genau wie einen Webbrowser emulieren?
Danke für die Antwort. Ich habe versucht, die URL einer anderen Antwort anzugeben. Aber es funktioniert immer noch nicht. 🙁
– Parixit
28. Juni ’13 um 12:24
Leider ist jede Website anders – Sie müssen möglicherweise mit einer Vielzahl verschiedener http-Header experimentieren, bevor Sie einen erhalten, den die Website akzeptiert … oder es funktioniert einfach nie … oder Sie benötigen möglicherweise sogar Spoofing mit Cookie-Unterstützung. Leider ist hier nur Versuch und Irrtum möglich – so etwas wird immer schwieriger 🙁
– fquinner
28. Juni ’13 um 12:35
sieht so aus, als ob die zweite URL manchmal zu langsam antwortet, möglicherweise Weiterleitungen. Versuchen Sie, curl zu verwenden, und stellen Sie ein größeres Timeout ein. Schalten Sie auch Fehler ein
Was ist also die zweite URL, die tatsächlich widerhallt? Oder bekommst du irgendwelche Fehlermeldungen?
– Mark Baker
28. Juni ’13 um 11:25
Was meinst du mit “funktioniert nicht”?
– Andrej Bestuzhev
28. Juni ’13 um 11:25
Bitte öffnen Sie beide URLs im Browser. Beide geben HTML-Seite zurück.
– Parixit
28. Juni ’13 um 11:27
vielleicht haben sie Nicht-Browser-Anfragen blockiert 😛
– Dino Babu
28. Juni ’13 um 11:34
@DBK Wenn ja, gibt es eine andere Möglichkeit, dies zu tun?
– Parixit
28. Juni ’13 um 11:35