我试图通过cURL获取某些网站并将其打印在屏幕上。但是一些重定向访问者的站点没有成功获取,在phpinfo()中我确认安全模式和basedir未设置。以下是我的代码:
<p> The download will begin in <span id="countdowntimer">20 </span> Seconds</p>
<script type="text/javascript">
var timeleft = 20;
var downloadTimer = setInterval(function(){
timeleft--;
document.getElementById("countdowntimer").textContent = timeleft;
if(timeleft <= 0)
clearInterval(downloadTimer);
},1000);
</script>
<?php
header( "refresh:20;url=index.php" );
$ch2 = curl_init();
$url = "https://youtube.com";
$agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
$url = @str_ireplace("https://","http://",$url);
curl_setopt($ch2, CURLOPT_URL, $url); curl_setopt($ch2, CURLOPT_HEADER, true);
curl_setopt($ch2, CURLOPT_USERAGENT, $agent);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
//return the transfer as a string
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
echo $output2 = curl_exec($ch2);
curl_close($ch2);
?>
当我评论CURLOPT_FOLLOWLOCATION行时,请求的网址会抛出301错误。
第二件事是,那些没有重定向访问者并成功获取我的代码的页面在屏幕上没有正确打印。 该网站应如下图所示打印。Original Website
但它的打印方式如下图所示:The page fetched by my codes
此呈现问题在所有网站上都存在,而不仅仅是我已上传其屏幕截图的网站。
所以,我想解决: 1.页面呈现不正确。 2.无法获取和打印重定向访问者的网页。
我们将不胜感激。