Я использую URLResolver от https://github.com/mattwright/URLResolver.php
Пользователь сайта добавил $ site из следующего кода. Этот код работал отлично в течение нескольких месяцев, пока пользователь не добавил http://adsactly.city
. Есть другие сайты, которые перенаправляют, и код всегда работал отлично.
Однако этот конкретный сайт просто зависает, пока не будет возвращена ошибка 504 (тайм-аут шлюза).
Я понимаю ошибку, но я не понимаю, почему она висит на этом URL, и потому что я не знаю, что является причиной этого, я не знаю, как именно это исправить.
Если я захожу на данный сайт, он перенаправляется на https://steemitgoldminer.com/S-City/
. Перенаправленный сайт работает отлично - но, очевидно, я не могу изменить ввод пользователя.
Я попытался сделать wget для URL, и он также просто зависает, что заставляет меня поверить, что это не перенаправление javascript или мета редирект (возможно, я ошибаюсь?).
Итак, мои вопросы: почему этот URL имеет время ожидания 504 и, что более важно, как мне обнаружить этот тип перенаправления, чтобы я мог проверить его в будущем?
$site = 'http://adsactly.city';
require_once( $_SERVER['DOCUMENT_ROOT'] . '/classes/parse_urls/URLResolver.php');
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNBINARYOPTION, true);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/1');
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$resolver = new URLResolver();
$resolve= $resolver->resolveURL($site);
$resolved = $resolve->getURL();
$parsing = file_get_contents_curl($resolved);
$doc = new DOMDocument();
@$doc->loadHTML($parsing);
$nodes = $doc->getElementsByTagName('title');
$node = $doc->getElementsByTagName('img');
$para = $doc->getElementsByTagName('p');
echo $resolved; die;