在使用php的curl获取远程文件
,代码如下:
<?
$ghurl=isset($_GET['id'])?$_GET['id']:'http://www.baidu.com/';
//php获取
functiongetContents($url){
$header=array("Referer:http://www.baidu.com/");
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);//是否抓取跳转后的页面
ob_start();
curl_exec($ch);
$contents=ob_get_contents();
ob_end_clean();
curl_close($ch);
return$contents;
}
$contents=getContents($ghurl);
echo$contents;
?>
一般来说在win2003+iis下如
,把php_curl.dll配置好就没问题了
。 但笔者在
linux+apahe2.0+php5.2.12+directadmin,(一般国外主机商都是用这配置)如果获取的网址有301/302跳转,会报错:
curl_setopt()[function.curl-setopt]:CURLOPT_FOLLOWLOCATIONcannotbeactivatedwheninsafe_modeoranopen_basedirissetin***
关于这个问题,google,百度一下,都是在大篇长长的english,不精通
linux的还真头痛
。 解决办法其实很简单:登陆你的directadmin