문제

난타하고 있는 컬 PHP 다른 데이터를 반환을 말했을 때는 출력을 통해 파일 CURLOPT_FILE 으로 그것을 말했을 때 보낼 경우에도 출력하는 문자열을 통해 CURLOPT_RETURNTRANSFER.

_RETURNTRANSFER 를 제거하는 것 같바꿈과 추가 공백으로 구문 분석하는 경우 표시하기 위한 표준으로 HTML 코드입니다. _FILE 다른 한편으로 보존 파일의 정확히 그대로 있었을 것입니다.

나는 설명서를 읽어에 php.net 하지만 아무것도 발견하지 않았을 것을 내 문제를 해결한다.이상적으로,하고 싶 _RETURNTRANSFER 반환 정확한 내용할 수 있도록 제거 중간 파일이 보이지 않는 어떤 방법을 만들기의 다음이 가능해집니다.

는 코드는 다음과 같습니다 난 사용합니다.데이터 질문에는 CSV 파일로 라인 엔딩이 있습니다.

function update_roster() {
  $url         = "http://example.com/";  
  $userID      = "xx";  
  $apikey      = "xxx";  
  $passfields  = "userID=$userID&apikey=$apikey";

  $file = fopen("roster.csv","w+");

  $ch = curl_init();  
  curl_setopt($ch, CURLOPT_POST, 1);  
  curl_setopt($ch, CURLOPT_URL,$url);  
  curl_setopt($ch, CURLOPT_POSTFIELDS, $passfields);  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_FILE, $file);
  $variable_in_question = curl_exec  ($ch);  
  curl_close ($ch);

  fclose($file);
  return $variable_in_question;
  }

알고 보니,오류가 없었는 반환되지만,나는 방법에 대해 가고 있었 분석니다. 해석되지 않습 방법을 내가 예상되는 경우에 넣어옴표로 전환하면 쌍따옴표 해결이 내 문제입니다.지 않았다는 것을 알고 있는 이 차이를 만들어 내 함수 호출을 다음과 같다.

이 잘 작동:$cresult = split("\r\n", $cresult);

이지 않: $cresult = split('\r\n', $cresult);

도움이 되었습니까?

해결책

알고 보니,오류가 없었는 반환되지만,나는 방법에 대해 가고 있었 분석니다. 해석되지 않습 방법을 내가 예상되는 경우에 넣어옴표로 전환하면 쌍따옴표 해결이 내 문제입니다.지 않았다는 것을 알고 있는 이 차이를 만들어 내 함수 호출을 다음과 같다.

이 잘 작동:$cresult = split("\r\n", $cresult);

이지 않: $cresult = split('\r\n', $cresult);

다른 팁

대부분에서 스크립트 langage(그것도 사실에 Bash 에 대한 인스턴스),간단한 따옴표를 나타내는 데 사용되는 사물을 있는 그대로,기록하는 반면 쌍따옴표는"분석이라"(하다고 생각하지 않는 적절한 단어 하지만 나는 더 찾을 수 없습니다).

$str = 'foo';
echo '$str'; // print “$str” to the screen
echo "$str"; // print “foo” to the screen

그것은 진정한 변수에 대해서 탈출했다.

시도 하지 않았을 재현"버그"(수 있습니다 우리가 생각으로 고려 버그는 경우 실제 동작),그러나 어쩌면 당신이 얻을 수 있습니다.

PHP Doc 는 기본 comportement 를 작성하는 것입니 결과를 파일로,그리고 그 기본 파일은 STDOUT(브라우저의 창).당신이 원하는 것은 같은 결과가 이 파일에만 변수입니다.

당신이 할 수 있는 것을 사용하여 ob_start();ob_get_clean();.

$ch = curl_init(...);
// ...
ob_start();
curl_exec($ch);
$yourResult = ob_get_clean();
curl_close($ch);

내가 알고 있는지 정말 깨끗한 방법(있을 경우),하지만 적어도 그것을 즐길 잘 작동합니다.

(실례는 경우에 저는 영어를 완벽하지 않습;-)...)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top