时间:2021-07-01 10:21:17 帮助过:18人阅读
- <br><!--? <BR-->$ghurl = isset($_GET['id']) ? $_GET['id']:'http://www.baidu.com/'; <br>// php 获取 <br>function getContents($url){ <br>$header = array("Referer: http://www.baidu.com/"); <br>$ch = curl_init(); <br>curl_setopt($ch, CURLOPT_URL, $url); <br>curl_setopt($ch, CURLOPT_TIMEOUT, 30); <br>curl_setopt($ch, CURLOPT_HTTPHEADER,$header); <br>curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); //是否抓取跳转后的页面 <br>ob_start(); <br>curl_exec($ch); <br>$contents = ob_get_contents(); <br>ob_end_clean(); <br>curl_close($ch); <br><br>return $contents; <br>} <br><br>$contents = getContents($ghurl); <br>echo $contents; <br>?> <br><br> <br>一般来说在win2003+iis下如,把php_curl.dll配置好就没问题了。 <br><br>但笔者在 linux+apahe2.0+php5.2.12+directadmin,(一般国外主机商都是用这配置)如果获取的网址有301/302跳转,会报错: <br><br>curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in *** <br><br>关于这个问题,google,百度一下,都是在大篇长长的english,不精通linux的还真头痛。 <br>解决办法其实很简单:登陆你的 directadmin <br>找到 ->>"PHP SafeMode Configuration" -->>看下图 <br>
- <p align="center"><img height="510" alt="" src="https://img.gxlcms.com//Uploads-s/new/2019-09-20-201920/20110602230706732.jpg" width="593" border="0"> </p>
- <p>把默认的 <strong><font color="#ff0000">Default Safe</font></strong> 和 <font color="#ff0000"><strong>Default Open BaseDir</strong> 都<strong> OFF</strong></font><font color="#000000">,问题就解决了。</font> </p>