将php var传递给curl

时间:2015-11-19 11:36:46

标签: php curl

我正在尝试将php变量传递给php curl脚本,但我正在努力。

任何想法都会受到赞赏。

$thestring = "foobar";

$data = '{"last":"$thestring"}'; //this will not work
$data = '{"last":$thestring}'; //this will not work

$data = '{"last":"foobar"}'; //this does work

$url = "https://myjson.com.json"; //not my real url
$headers = array('Content-Type: application/json');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
curl_close($curl);
echo $response;

2 个答案:

答案 0 :(得分:3)

试试这个:

$data = '{"last":"'.$thestring.'"}';

您必须将$data字符串连接正确。单引号'不会被PHP解析。

答案 1 :(得分:0)

Tino的答案通过指出单引号内的php变量不被解释来解决你的问题。

您也可以使用json_encode()而不必自己构建对象。

$thestring = "foobar";

$data = json_encode (array (
    "last" => $thestring
));

或者

$thestring = "foobar";

$data = array();
$data["last"] = $thestring;

$data = json_encode($data);

你明白了。