2012-09-04 2 views
8

私は$data = curl_exec($ch);から結果を処理して、画面に表示しようとしています。私のローカルサーバー上CURLOPT_RETURNTRANSFERがtrueに設定されていると、ホストサーバー上で動作しません

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

期待通り、この作品が、私は自分のサーバー上でオンラインに同じファイルを置くとき、それは動作しません。私はこのようなtrueにオプションCURLOPT_RETURNTRANSFERを設定することを達成するために。

CURLOPT_RETURNTRANSFERfalseに設定すると動作します。

私は間違っていますか?

答えて

17

あなたがtrueまたは1CURLOPT_RETURNTRANSFERを設定した場合、curl_execからの戻り値は、成功した操作から実際の結果となります。つまり、成功した場合はTRUEを返しません。ただし、失敗した場合はFALSEを返します。リターンで説明したように

curl-exec PHPマニュアルページのセクションには、値:http://php.net/manual/function.curl-exec.php

あなたはリダイレクト用CURLOPT_FOLLOWLOCATIONオプションを有効にする必要がありますが、あなたのサーバがsafe_modeおよび/またはopen_basedirにある場合、これは問題になる効果でありますカールの問題を引き起こす可能性があります。後

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

+1

多分私は間違って質問を置きます。結果を変数に戻したい。だから私はCURLOPT_RETURNTRANSFERをtrueに設定し、それを行う必要がありますが、それは正常に動作localhost上のサーバーをホストしません。 PHPのいくつかの設定は、私は知らない設定されていません。 –

+0

@MarcelGentSimonis私は自分の答えを編集し、どのsafe_modeとopen_basedirが設定されているか確認します。あなたのローカルマシンは恐らくそれらを無効にしているでしょう –

+0

trueに設定されていないと、curlからの戻り値は**あなたの**応答の一部として出力されることに注意してください。カールがそれを返すので、ページ上部の奇妙な出力があることに気づくために、私から1時間ほどトークしてください。 –

0

ただ、このラインを試してみてください

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
+2

なぜですか?これは何をするのですか?これはどのようにOPを助けることができますか?あなたの答えを詳述してください:あなたは何が間違っているのかをOPが理解するのを助け、彼に "ランダムなことを試してはいけません" :-) –

関連する問題