2012-01-23 9 views
1

HTTPクライアントのリクエストと応答を受け取る小さなHTTPサーバスクリプトがあります。 \ r \ n \ r \ n終了のタイプがあるときは検出する必要があります。ダブルリターンヒット:私は「近くに接続」の後に読み取りを停止する必要がソケット通信のメッセージの終わりを検出するPHP

GET/HTTP/1.1 
Host: test.com 
Connection: close 

:私たちはこのような入力を持っている場合に発生します。 strposや他の文字列関数を使ってみましたが、うまくいきません。 PHPで終わるこの種の文字列を検出するヒント?

ありがとうございました。あなただけで空行を探すことができ、その特定のプロトコルのために

+0

ソケットからデータを読み込み、\ r \ n \ r \ nを確認していますか? 'strpos($ response、" \ r \ n \ r \ n ")'はそれに対応しますが、バッファ全体を調べる必要があります。また、その接続が可能ではない場合は、そのヘッダーが設定されていない場合、最後のヘッダーになることは保証されません。\ r \ n \ r \ n – drew010

答えて

0

if (!strlen(trim($line))) { 

は実際にあなたが(バギークライアント用と\n\r\nを探しているべきであるが、他の組み合わせが生じにくいです。ちょうど空白を持つものは、もはや有効なヘッダ行ではありません。

関連する問題