원하지 않을 때 curl_exec 인쇄 결과


80

다음 코드를 사용하고 있습니다.

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_TIMEOUT, 12); 

$result = curl_exec($ch);

curl_close ($ch);

그러나 결과를 바로 인쇄합니다. 원하는 때 출력 할 수 있도록 JSON 결과를 변수에 넣을 수 있습니까?


1
코드에서 당신은 내가 어떤 인쇄를 참조 해달라고 게시
하임 Evgi

6
그것이 요점입니다. 그 코드 부분은 메신저도 요청하지 않을 때 컬 결과를 인쇄합니다.
Oliver Bayes-Shelton 2011 년

답변:


177

설정 CURLOPT_RETURNTRANSFER옵션 :

// ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$result = curl_exec($ch);

문서 당 :

CURLOPT_RETURNTRANSFER- TRUE전송을 curl_exec()직접 출력하는 대신 반환 값의 문자열로 반환합니다 .


2
링크 된 문서에 "PHP 5.1.3부터이 옵션은 효과가 없습니다. CURLOPT_RETURNTRANSFER를 사용할 때 원시 출력이 항상 반환됩니다"라고 말합니다. 내가 확신 내가 아주 작은 뇌의 Mawg되는, 그것을 이해하고 난 여전히 OP와 같은 문제를 가지고 아니라고
Mawg는 분석 재개 모니카 말한다

3
PHP 문서의이 메모는 CURLOPT_RETURNTRANSFER 옵션이 아니라 CURLOPT_BINARYTRANSFER 옵션과 관련된 것 같습니다.
Kel


-6

php 5.1 이후 curl에는 항상 문서에서 볼 수있는 결과가 표시됩니다. 그것을 피하기 위해 단순히 사용

echo "< span style='display:none'>";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_TIMEOUT, 12);

$result = curl_exec($ch);

curl_close ($ch);

echo"< /span>";

4
curl의 동작은 구성 할 수 있지만 값을 인쇄하는 대신 반환하도록 구성 할 수없는 것이 실제로 ob_start()발견되면 호출하기 전과 후에 실제로 사용해야 합니다 ob_get_clean(). 의 반환 값은 ob_get_clean()그렇지 않으면 인쇄되었을 내용입니다. 이러한 기능에 대해 알아 보려면 이러한 기능의 설명서를 참조하십시오. 당신의 대답은 정말 괜찮지 않아서 이것들로부터 배울 수 있다고 생각했습니다. 기분을 상하게 할 의도는 없었습니다. 행운을 빕니다!
Tamás Barta

3
실제로이 답변의 문제는 (이전 댓글 작성자가 언급 한 포인트 외에도) 질문에 답변하지 않는다는 것입니다. 웹 애플리케이션인지 아닌지는 언급되지 않았으므로 출력이 어떻게 표시되는지 확신 할 수 없습니다 (콘솔 애플리케이션 일 수도 있음).
mark.sagikazar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.