Intereting Posts
Использование идентификатора таблицы отношений в других таблицах PHP XPath. Как вернуть строку с тегами html? Предупреждение: mysqli_stmt :: bind_result (): Число переменных привязки не совпадает с числом полей в подготовленной ошибке оператора Получение информации из файла Как получить имя сайта во время разработки плагина? Как отсортировать массив даты в php? Сортировка многомерного массива в алфавитном порядке Полученные значения PHP SimpleXML имеют странные символы вместо дефис и апострофов преобразование XML-ответа SOAP в объект или массив PHP Работа Php Cron в Windows XAMPP Regex для удаления http: // и www. из URL-адресов Отобразить предполагаемый диапазон дат поставки, основанный на запасе товаров в корзине WooCommerce Загрузка изображения Silverstripe меняет название PHP include не работает с файлами, отличными от индекса Любая идея для отправки POST для функции (url) через jquery-fancybox?

следовать переадресации с curl в php

Я знаю, что с помощью cURL я могу видеть целевой URL, указывая cURL на URL, имеющий CURLOPT_FOLLOWLOCATION = true.

Пример :

$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 будет иметь URL-адрес конечного пункта назначения, который может быть www.example2.com. Надеюсь, мое понимание правильное. Пожалуйста, дайте мне знать, если нет !.

Мой главный вопрос: что все типы перенаправления cURL смогут узнать? Переадресация Apache, переадресация javascript, переадресация формы отправки, мета-обновление перенаправления !?

Обновление Спасибо за ваши ответы @ceejayoz и @Josso. Итак, есть ли способ, с помощью которого я могу следовать программному переадресации через php?

cURL не будет следовать переадресации JS или мета-тегов.

Я знаю, что этот ответ немного запоздал, но я столкнулся с подобной проблемой и нуждался не только в перенаправлении статуса HTTP 301/302. Поэтому я написал небольшую библиотеку, которая также будет следовать метатегам rel = canonical и og: url.

https://github.com/mattwright/URLResolver.php

Я обнаружил теги meta refresh, которые не приносят большой пользы, но они используются, если не возвращается тег html головы или тела.

Насколько я знаю, это происходит только после перенаправления HTTP Header. (301 и 302).

curl – это многопротокольная библиотека, которая обеспечивает лишь небольшую поддержку HTTP, но не намного больше, что поможет в вашем случае. Вы можете вручную проверить тег meta refresh как обходной путь.

Но лучше было проверить PEAR HTTP_Request или класс Zend_Http, которые, скорее всего, уже предоставляют что-то подобное. Также phpQuery может быть уместным, поскольку он поставляется с собственными функциями http, но может легко ->find("meta[refresh]") если есть необходимость. Или найдите класс браузеров типа Mechanize: существует ли PHP-эквивалент Perl WWW :: Mechanize?

Я только что нашел это на сайте php. Он анализирует ответ, чтобы найти перенаправления и следует за ними. Я не думаю, что он получает все виды перенаправления, но он довольно близко

http://www.php.net/manual/en/ref.curl.php#93163

Я бы скопировал его здесь, но я не хочу плагиата