2012-02-08 14 views
0

私は自分のウェブサイトにSMSサービスを統合しようとしています。私は "msg"(urlencoded)という名前のパラメタでHTTPコールを行う必要があります。PHPのファイル_get_contentsエンコードの問題

現在、msg paramをurlencoded(つまり$msg = urlencode($msg))にしてURL全体を構築しており、SMSを送信しています。

$msg = urlencode("Hello World"); 

私の電話で受け取るのは「Hello World」で、「Hello World」ではありません。

file_get_contentsに問題がありますか?

また、とにかく文字列「file_get_contents」が最終的に送信されます。

+0

はあなたがそれをURLENCODEことになっていることを確認しているユーザーに表示する必要がありますか?これはすべてのスペースをプラス記号で置き換えるためです。有効なURLを作成します。テキストメッセージを送信しません。あなたはそれなしで試しましたか? – Iznogood

+0

私は "msg"パラメータをurlecodeすることになっています。 rawurlecodeが機能しませんでした。 –

答えて

1

私が問題だったか考え出し:

私は、クエリ文字列を作成するために、http_build_queryを使用していた、と私はそれにurlencode D」のPARAMを渡しました。したがって、2回エンコードされていました。

file_get_contentsに問題がありますか?

また、どのような方法があり、私は、文字列file_get_contentsが最終的に送り出す見ることができますか?

はい、ネットワークスニファです。

1

rawurlencode()を代わりに使用してください。

主な違い(他にもありますが)は、+の代わりに%20のようにスペースをエンコードします。これはあなたの問題の原因になりそうです。

+0

ありがとうございますが、動作しませんでした。 –

+0

今はどうなりますか?あなたは 'Hello%20World'を手に入れますか? – DaveRandom

+0

リクエストの生成に使用したコードをすべて表示できますか? – DaveRandom

0

あなたがデータを取得した後、urldecode()を使用し、

関連する問題