Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使用-data curl_Php_Bash_Function_Curl - Fatal编程技术网

如何在PHP中使用-data curl

如何在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“ 我需要做同样的事情,

使用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“
我需要做同样的事情,但要将该页面的完整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);