2014-06-23 9 views
1

나는 (신체 반응) 상태를 1 또는 0으로 반환하는 cURL 링크를 가지고 있습니다. 나는 많은 것을 검색해 왔으며 그것을 얻는 방법에 대한 아이디어를 얻지 못했습니다. a ph PHP와 연결하고 싶습니다. 나는 상태를 받아서 PHP의 조건으로 사용할 수 있습니다.. cURL에 액세스 토큰 및 권한 부여가 있습니다. 무기명, 도움을 받아서 도움을받을 수 있기를 바랍니다.PHP, CURL 본문 응답 받기

답변

0

다음은 내가 사용하는 기능입니다. 매개 변수 및 값의 배열 (연관 배열)을 보내고 결과를 다시 얻습니다. ?

function do_curl_function($array, $url = "http://url.com") { 
    if (!is_array($array)) { 
     return false; 
    } 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    //curl_setopt($ch, CURLOPT_HEADER, true); 
    //curl_setopt($ch, CURLINFO_HEADER_OUT, false); 
    //curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/x-www-form-urlencoded; charset=utf-8")); 
    //curl_setopt($ch, CURLOPT_USERPWD, 'myusername:mypassword'); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $array); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 

    $result = curl_exec($ch); 
    $info = curl_getinfo($ch); 

    curl_close($ch); 

    if ($result) { 
     $result = json_decode($result); 
    } 

    return false; 
} 

내가 그것을 좋아 사용할 수 있습니다. (내 경우, JSON해야한다) :

<?php 
    $post_array = array("action" => "subscribe", "name" => "James", "email" => "[email protected]"); 

    $result = do_curl_function($post_array); 

    if ($result) { 
     print_r($result); 
    } 
?> 
+0

우리는 왜 그것을 기능으로해야합니까? 그리고 배열을 사용하면 어떤 이점이 있습니까? 댓글을 달았거나 그대로 두어야합니까? – Abdullah

+0

주석 처리 된 영역이 필요하지 않습니다. 앞으로 필요할 때를 대비하여 코드에 있습니다. 배열은 URL에 게시 할 "필드"를 포함합니다. 데이터를 다른 페이지에 게시해야하는 경우 배열을 사용해야합니다. 그렇지 않다면'CURLOPT_POSTFIELDS' 라인을 주석으로 처리 할 수 ​​있습니다. 예제를 보여주기 위해 코드를 업데이트 할 것입니다. 원하지 않으면 함수로 사용할 필요가 없습니다. 그러나 대부분의 경우 작업이 더 쉬워집니다. – James

+0

업데이트 된 내용을 참조하십시오. – Abdullah

0
<?php 

$url = "www.url.com"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLINFO_HEADER_OUT, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/json","Accept:application/json",and some Authorization); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
$result = curl_exec($ch); 
$info = curl_getinfo($ch); 
echo $result 
echo $info 

if ($result) { 
    $result = json_decode($result); 
} 

curl_close($ch); 

>

내가 그런 식으로했고, HTTP 응답했다 200 OK 그러나 결과 나 정보를 에코 할 때 1 또는 0을 인쇄 할 때 "array"라는 인쇄 문자열을 출력 할 때

나는 결과를 얻을 수 있도록 몸의 반응을 얻으려고 내가 의미하는 바를 이해하기를 바랍니다.

+0

질문을 추가하는 대신 원래 게시물을 편집해야합니다 (다른 방문자에게는 혼란스럽지 않습니다). 그러나 JSON 문자열을 기대하지 않기 때문에'$ result = json_decode ($ result);'라인은 필요 없습니다. 또한이 줄은 제거되어야합니다 :'curl_setopt ($ ch, CURLOPT_HTTPHEADER, Array ("Content-Type : application/json", "Accept : application/json"및 일부 권한 부여), 또는 적어도 응용 프로그램이 아닌 것으로 변경되었습니다./json JSON 응답을 기대하지 않기 때문입니다. – James