2013-07-12 6 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; 

예 : 스크립트의

예에 제출되었습니다 내가 ($ 결과)를 위해서 var_dump 경우

$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); 

내가 부울 (true)를 얻을 그래서 내가 스크립트가 있는지 알고 올바르게 실행되고 출력은 화면에 표시되지만 정보를 처리 할 변수에 저장할 수없는 것 같습니다.

curl_exec documentation으로 사전

+0

, 당신은? –

+0

이것은 단지 예제입니다. 나쁜 예제 위의 코드를 업데이트합니다 –

+0

json_encoded 배열의 출력을 볼 수 있지만 데이터를 저장할 수 없음을 유의하십시오. –

답변

0

에 감사 말합니다 : 귀하의 경우

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()을 사용하여 요청을 작성하면 데이터에 & 문자가있는 경우 손상 될 수 있습니다.

그냥 $champhttp_build_query()를 사용 : 당신은 실제로 "제출"라는 이름의 POST 변수를 게시하지 않습니다

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

http_build_query 대신 foreground 루프와 false로 설정된 조합이라고 생각한다. 고마워요! –

관련 문제