在我的php页面中,我想根据其他值为用户调用另一个URL。 我的代码现在将转到新页面,但我需要点击消息
您正在被重定向。 // //
然后它将转到正确的页面。 如何调用新页面而不收到此消息? 到目前为止,这是我的代码。
<?php
require_once 'libs/Mobile_Detect.php';
$detect = new Mobile_Detect;
if ($detect->isMobile() )
{
$url = $_GET["link2"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
}
else{
// "desktop";
?> <h1><?php echo $_GET["title"]; ?></h1>
<iframe src='<?php echo $_GET["link"]; ?>' frameborder="1"
width="1311px" height="800px"></iframe>
<?php
}
?>
答案 0 :(得分:0)
首先要尝试的是curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
,它对应于命令行参数curl -L
。
7.19.4之前的cURL版本(已包含在旧的,不再受支持的PHP版本中)无法正确检查从HTTP或HTTPS URI到本地文件的重定向。如mario在another answer中指出的那样,这可以用来规避open_basedir
的限制。因此,对于这些版本的cURL,如果设置了safe_mode
或open_basedir
,则在程序尝试打开CURLOPT_FOLLOWLOCATION
时,PHP会引发错误。这是fixed in PHP 5.5.3,并且该修复程序仍在所有受支持的PHP版本中。
如果打开CURLOPT_FOLLOWLOCATION
不能解决重定向,则该站点可能根本没有使用301/302重定向,而是使用JavaScript重定向或不使用重定向来阻止自动化过程的滥用。这样做的站点希望用户通过手动导航(用鼠标单击,用触摸屏点击或使用Tab键并按Enter)来跟踪链接。为此,您必须解析HTML才能读取链接的目标。首先load the HTML into a DOMDocument
,然后寻找具有令人满意的<a>
属性的href
元素。