Aci*_*don 3 php redirect curl http-headers url-redirection
我必须从这个得到最终的重定向URL:https://web.archive.org/web/20070701005218/http://www.maladnews.com/这实际上重定向到这样的:HTTPS://web.archive。 org/web/20080109064420/http://www.maladnews.com/Site%203/Malad%20City%20&%20Oneida%20County%20News/Malad%20City%20&%20Oneida%20County%20News.html
我尝试了其他 stackoverflow 答案中的答案,这些答案适用于其他网站,但不适用于上述链接。
我试图提取常规位置标头:
if(preg_match('#Location: (.*)#', $html, $m))
$l = trim($m[1]);
Run Code Online (Sandbox Code Playgroud)
并检查了javascript方式:
preg_match("/window\.location\.replace\('(.*?)'\)/", $html, $m) ? $m[1] : null;
Run Code Online (Sandbox Code Playgroud)
请帮忙!
Asa*_*aph 10
使用curl_getinfo()带有CURLINFO_REDIRECT_URL或CURLINFO_EFFECTIVE_URL根据您的使用情况。
CURLINFO_REDIRECT_URL-CURLOPT_FOLLOWLOCATION禁用选项:在上次交易中找到的重定向 URL,接下来应该手动请求。CURLOPT_FOLLOWLOCATION启用该选项后:这是空的。这种情况下的重定向 URL 可在CURLINFO_EFFECTIVE_URL
-- http://php.net/manual/en/function.curl-getinfo.php
<?php
$url = 'https://google.com/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$html = curl_exec($ch);
$redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
echo "Original URL: " . $url . "\n";
echo "Redirected URL: " . $redirectedUrl . "\n";
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,输出为:
Original URL: https://google.com/
Redirected URL: https://www.google.com/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7579 次 |
| 最近记录: |