如何在PHP中使用-data curl
使用LinuxBash中的如何在PHP中使用-data curl,php,bash,function,curl,Php,Bash,Function,Curl,使用LinuxBash中的curl,我可以下载传递一些变量的网页 curl --data "var1=val1&var2=val2&var3=&var4=val4&btnSubmit=btnName" https://<url> -o "<fileToSave>" curl--data“var1=val1&var2=val2&var3=&var4=val4&btnSubmit=btnName”https://-o“ 我需要做同样的事情,
curl
,我可以下载传递一些变量的网页
curl --data "var1=val1&var2=val2&var3=&var4=val4&btnSubmit=btnName" https://<url> -o "<fileToSave>"
curl--data“var1=val1&var2=val2&var3=&var4=val4&btnSubmit=btnName”https://-o“
我需要做同样的事情,但要将该页面的完整html代码放入php变量中。
我正在尝试这样做:
<?php $ch = curl_init();
$post_data = array (
"var1" => "val1",
"var2" => "val2",
"var3" => "",
"var4" => "val4",
"btnSubmit" => "btnName"
);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($ch);
?>
问题是,我可以从bash检索html页面,并使用此代码保存它。我的$response
值为空
有什么问题吗?在$post\u data
上使用http\u build\u query()
,否则curl将假定基于数组
数据类型发布多部分/表单数据
(这就是它不适用于您的原因)
http\u build\u query()
将数组转换为key1=value1&key2=value2
格式的字符串,自动urlencode()
似乎您正在连接到HTTPs URL。您应该启用此cURL
参数
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);