Ich weiß, dass ich mit cURL die Ziel-URL sehen kann, indem ich cURL auf URL mit CURLOPT_FOLLOWLOCATION = true zeige.
Beispiel:
%Vor%$ info hat die URL des endgültigen Ziels, das www.example2.com sein kann. Ich hoffe mein oberes Verständnis ist richtig. Bitte lass es mich wissen, wenn nicht !.
Meine Hauptfrage ist, was jede Art von Umleitung cURL wissen kann? Apache-Weiterleitung, Javascript-Weiterleitungen, Formular-Weiterleitungs-Weiterleitungen, Meta-Refresh-Weiterleitungen!?
aktualisieren Danke für Ihre Antworten @ceejayoz und @Josso. Gibt es also einen Weg, mit dem ich alle Umleitungen programmatisch durch PHP verfolgen kann?
Ich weiß, dass diese Antwort etwas spät ist, aber ich stieß auf ein ähnliches Problem und brauchte mehr als nur die HTTP 301/302 Statusweiterleitungen zu befolgen. Also habe ich eine kleine Bibliothek geschrieben, die auch den Meta-Tags rel = canonical und og: url folgt.
Ich fand Meta-Refresh-Tags, die keinen großen Nutzen bringen, aber sie werden verwendet, wenn kein HTML-Tag für den Kopf oder den Text zurückgegeben wird.
curl ist eine Multi-Protokoll-Bibliothek, die nur ein wenig HTTP-Unterstützung bietet, aber nicht viel mehr, was in Ihrem Fall hilft. Sie können manuell nach dem Meta-Aktualisierungs-Tag als Workaround suchen.
Aber eine bessere Idee war es, PEAR HTTP_Request oder die Zend_Http Klasse auszuchecken, die wahrscheinlich schon so etwas bieten. Auch phpQuery könnte relevant sein, da es mit seinen eigenen http-Funktionen ausgestattet ist, könnte aber leicht ->find("meta[refresh]")
, wenn es nötig ist. Oder suchen Sie nach einer Mechanize-ähnlichen Browser-Klasse: Gibt es ein PHP-Äquivalent von Perls WWW :: Mechanize?
Ich habe das gerade auf der PHP-Seite gefunden. Es analysiert die Antwort, um Weiterleitungen zu finden, und folgt ihnen. Ich glaube nicht, dass es jede Art von Redirect bekommt, aber es ist ziemlich nah dran
Ich würde es hier kopieren, aber ich möchte nicht plagiieren