2013-07-12 21 views
0

有沒有人可以存儲來自Curl腳本的回顯結果。腳本的PHP Curl不存儲json_encoded回顯數據

例已提交:捲曲的

\\some code to generate images using imagick and the post variables 

$array = array(1,2,3,4,5,6,7,8,9); 
$result = json_encode($array); 
echo $result; 

例子:

$id = 1; 
$champ = array("product" => "1","id"=> $id,"occasion"=> $o,"field1" => "1991","field2" => "test","field3" =>"test1","field4" => "test2","field5" =>"test3","field6" =>"test4","field7" =>"test5","field8" =>"test6","test7"); 
foreach($champ as $key => $data){ 
    $field_string .= $key."=".$data."&"; 
} 
rtrim($field_string, "&"); 

$url = "http://www.test.com/website/script.php"; 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_POST, count($champ)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $field_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE); 
$result = curl_exec($ch); 
$array = json_decode($result); 
curl_close($ch); 
var_dump($array); 

如果我的var_dump($結果)我得到一個布爾(真),所以我知道該腳本有執行正確,輸出顯示在屏幕上,但我似乎無法將信息存儲到變量中進行處理。

預先感謝您

+0

你實際上並沒有發佈名爲「提交」變量後,是嗎? –

+0

沒有這只是一個例子,我會更新代碼上面的錯誤代碼 –

+0

請注意我可以查看輸出是json_encoded數組,但我無法存儲數據 –

回答

0

由於curl_exec documentation說:

curl_exec() returns TRUE on success or FALSE on failure. 
However, if the CURLOPT_RETURNTRANSFER option is set, 
it will return the result on success, FALSE on failure. 

你的情況,你把CURLOPT_RETURNTRANSFER關閉。 打開它通過

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

,並再次檢查$結果。

注意:使用foreach循環和rtrim()構建請求,如果您的數據包含&字符,則可能會損壞它。

只需使用http_build_query()$champ

curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($champ)); 
+0

謝謝,我認爲它是設置爲false和foreach循環而不是http_build_query的組合。非常感謝你! –