Folgen Sie leitet mit curl in php
Weiß ich, dass mit cURL kann ich sehen, dass die Ziel-URL, Hinweis cURL URL mit CURLOPT_FOLLOWLOCATION = true.
Beispiel :
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "www.example1.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
$info = curl_getinfo($ch); //Some information on the fetch
curl_close($ch);
$info wird die url vom endgültigen Ziel werden kann www.example2.com.
Ich hoffe, meine obigen Verständnis korrekt ist. Bitte lassen Sie mich wissen, wenn nicht!.
Meine wichtigste Frage ist, was alle Art von Umleitung LOCKE wird in der Lage sein zu wissen?
Apache redirect, javascript-Weiterleitungen, form submition Weiterleitungen, meta-refresh-Weiterleitungen!?
update
Danke für Eure Antworten @ceejayoz und @Josso. So ist es eine Weise, durch die kann ich alle Folgen der Umleitung über ein Programm über php?
- Tun Sie einschließlich aller javascript und meta-refresh? meta-refresh ist möglich
- Javascript ist auch möglich, nur eben nicht mit vertretbarem Aufwand.
Du musst angemeldet sein, um einen Kommentar abzugeben.
LOCKE wird nicht Folgen, JS oder meta-tag-Umleitungen.
Ich weiß, diese Antwort ist ein wenig spät, aber ich lief in ein ähnliches Problem und brauchte mehr als nur nach dem HTTP 301/302 status leitet. Also schrieb ich eine kleine Bibliothek, die auch Folgen, rel=canonical und og:url meta-tags.
https://github.com/mattwright/URLResolver.php
Fand ich meta-refresh-tags nicht viel nutzen, aber Sie werden verwendet, wenn keine head-oder body-html-tag zurückgegeben.
Soweit ich weiß, es folgt nur der HTTP-Header-Weiterleitungen. (301 und 302).
curl ist ein multi-Protokoll-Bibliothek, die bietet nur ein wenig HTTP-Unterstützung, aber nicht viel mehr, die in Ihrem Fall helfen. Sie könnten Scannen manuell für die meta-refresh-tag als workaround.
Aber eine bessere Idee war, zu überprüfen, out PEAR HTTP_Request oder die Zend_Http-Klasse, die eher schon etwas wie dieses. Auch phpQuery relevant sein könnte, wie es kommt mit seinen eigenen http-Funktionen, aber könnte leicht
->find("meta[refresh]")
wenn es einen Bedarf. Oder suchen Sie einen Mechanize-browser wie Klasse: Gibt es ein PHP-äquivalent von Perl WWW::Mechanize?Ich gerade hier gefunden auf der php-Website. Es parst die Antwort zu finden, leitet und folgt Ihnen. Ich glaube nicht, dass es wird jede Art von Weiterleitung, aber es ist ziemlich nah
http://www.php.net/manual/en/ref.curl.php#93163
Ich würde es kopieren, hier möchte ich aber nicht zu plagiieren