我正在使用https://github.com/mattwright/URLResolver.php中的URLResolver
以下代码中的$ site由用户添加。在用户添加http://adsactly.city
之前,这段代码已经运行了好几个月。还有其他站点可以重定向,并且代码始终可以正常运行。
但是,该特定站点-一直挂起,直到返回504错误(网关超时)。
我理解该错误,我不理解的是为什么它会挂在该URL上,并且由于我不知道是什么原因导致这种情况的发生,所以我不知道该如何解决。
如果我访问有问题的网站,它将重定向到https://steemitgoldminer.com/S-City/
。重定向的网站可以正常运行-但显然我无法更改用户输入。
我试图在URL上执行wget,它也挂起,这使我相信它既不是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;