PHP cURL表示在发布到虚拟主机时永久移动
我正试图将一些带有PHP cURL的数据发布到一个本地站点,该站点使用虚拟主机创建一个自定义域PHP cURL表示在发布到虚拟主机时永久移动,php,post,curl,Php,Post,Curl,我正试图将一些带有PHP cURL的数据发布到一个本地站点,该站点使用虚拟主机创建一个自定义域http://example.local,但结果似乎是永久移动了。我怎样才能让它工作呢 这是我当前的代码: $url = "http://example.local/paypal_ipn.php" $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); cu
http://example.local
,但结果似乎是永久移动了。我怎样才能让它工作呢
这是我当前的代码:
$url = "http://example.local/paypal_ipn.php"
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, substr_count($req,'&')+1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
我曾尝试将CURLOPT\u FOLLOWLOCATION
设置为true,但没有POST数据,结果就是这样。使用CURLOPT\u CUSTOMREQUEST
而不是CURLOPT\u POST
之类
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
还有一件事,你需要补充
curl_setopt($curl, CURLOPT_POSTREDIR, 3);
3表示301和302重定向的请求类型相同,遵循重定向。
这样,第二个请求也将作为POST请求。请注意,在PHP5.3.2中实现的CURLOPT_POSTREDIR试试看
//** add options **//
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, "your_var");
curl_setopt($curl, CURLOPT_POSTREDIR, 3);
curl_exec($curl);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true)行解决了我的问题;curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);有没有办法确定要遵循的新url?有没有办法确定要遵循的新url?@famas23为什么需要它?我没有使用那个符号,但在那个时候,您需要禁用这个重定向选项并放入您自己的逻辑。至少我知道在我上面提供的选项中没有这样的选项