2015-01-04 111 views
0

嗨我写这个脚本来获取网站的html,但我看到“无效的请求”错误,但是当我创建一个html表单并提交它时,我没有问题,最新的问题是什么?这里是我的PHP代码:通过curl发出帖子请求

<?php 
$url = 'http://convert2mp3.net/en/index.php?p=convert'; 
$fields = array(
         'url' => urlencode("www.youtube.com/watch?v=ntSBKPkk4m4"), 
         'format' => urlencode("3gp") 
       ); 

//url-ify the data for the POST 
$fields_string=""; 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_AUTOREFERER,true); 
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 
?> 

回答

0

CURLOPT_POST值应该是一个布尔值,而不是诠释你将其设置为。

试试这个,如果$fields可以是动态的,或者只是将其设置为布尔true

curl_setopt($ch,CURLOPT_POST, count($fields) > 0);

而且,你为什么建立自己的POST领域?就在整个数组传递给CURLOPT_POSTFIELDS

$fields = array(
     'url' => "www.youtube.com/watch?v=ntSBKPkk4m4", 
     'format' => "3gp" 
); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields); 
+0

我试过,但我有同样的问题:( – user3120600

0

你不会跟团的成功,因为它们涉及的源IP地址,他们提供的,所以以后你会得到他们的CDN直接下载链接谈话的重点,您的客户端将无法下载它,因为相关的IP地址是您的Web服务器的IP地址。