我用cURL发送PHP Post请求时遇到了一些麻烦。
代码应该做的是:使用Post Data进入http://www.example.com/index.php。
代码的作用:它在我运行脚本的页面中加载www.example.com。如果我尝试使用这个网站,我将得到一个404错误。
下面是我的代码:$url = 'https://www.example.com/index.php';
$fields = array(
'info1'=>'par1',
'info2'=>'par2'
);
$postvars='';
$sep='';
foreach($fields as $key=>$value)
{
$postvars.= $sep.urlencode($key).'='.urlencode($value);
$sep='&';
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
$result = curl_exec($ch);
curl_close($ch);
试试这个:
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//Added this
$result = curl_exec($ch);
curl_close($ch);
每次打开YOUR
网站上不存在的链接都会看到404
这是因为您的浏览器试图打开yourwebsite.com/nicelink.php
而不是example.com/nicelink.php
为什么会发生这种情况?
让我们看看你是怎么做的:
1)打开yourwebsite.com/script.php
2)脚本从example.com加载数据并将其输出到yourwebsite.com
上下文中的浏览器
3)所有的链接,如<a href="nicelink.php">nice link</a>
是不相关的到您的浏览器当前打开的地址yourwebsite.com
!
使用http_build_query()
$postvars = http_build_query( $fields );
代替:
$postvars='';
$sep='';
foreach($fields as $key=>$value)
{
$postvars.= $sep.urlencode($key).'='.urlencode($value);
$sep='&';
}