php curl follow,php curl与CURLOPT_FOLLOWLOCATION错误

该博客探讨了当PHP的safe_mode或open_basedir启用时,如何处理因这些设置引起的重定向问题。提供的修复函数`curl_redirect_exec`通过解析HTTP响应头来捕获重定向URL,实现自动跳转,确保在受限环境中也能正常工作。
摘要由CSDN通过智能技术生成

错误表示safe_mode或open_basedir ARE已启用(可能是open_basedir),如果您的主机有任何体面的安全设置,您可能无法重写.

所以你有选择

1)改变主持人(不可想象我想象)

以下是第2点中指定的功能的固定版本

function curl_redirect_exec($ch,&$redirects,$curlopt_header = false) {

curl_setopt($ch,CURLOPT_HEADER,true);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

$data = curl_exec($ch);

$http_code = curl_getinfo($ch,CURLINFO_HTTP_CODE);

if ($http_code == 301 || $http_code == 302) {

list($header) = explode("\r\n\r\n",$data,2);

$matches = array();

preg_match("/(Location:|URI:)[^(\n)]*/",$header,$matches);

$url = trim(str_replace($matches[1],"",$matches[0]));

$url_parsed = parse_url($url);

if (isset($url_parsed)) {

curl_setopt($ch,CURLOPT_URL,$url);

$redirects++;

return curl_redirect_exec($ch,$redirects,$curlopt_header);

}

}

if ($curlopt_header) {

return $data;

} else {

list(,$body) = explode("\r\n\r\n",2);

return $body;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值