我正在尝试将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;
答案 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);
你明白了。