2016-07-15 10 views
0

に私は、このコマンドを持っている:コマンドラインで完全に正常に動作NCATコマンドは、コマンドライン上で動作ではなく、PHPスクリプト

echo -e 'GET/HTTP/1.0\n\n' | ncat www.website.com 80 

を。それは、しかし、PHPスクリプトでは機能しません。代わりに正しいHTMLを返すの

<?php 

$html = system("echo -e 'GET/HTTP/1.0\n\n' | ncat www.website.com 80"); 

print $html; 

?> 

、それがエラーを「あなたのブラウザはサーバが理解できなかったリクエストを送っ」を返します。これをどうやって解決するのですか?あなたがPHPを書いている

答えて

1

、したがって、あなたの文字列の\nは、実際の改行にPHPによって解析された:

$html = system("echo -e 'GET/HTTP/1.0\n\n' | ncat www.website.com 80"); 
             ^^^^^ 

、あなたはsystem()が起動シェルに送信してしまった何がのように見えました

echo -e 'GET/HTTP/1.0 

'| ncat www.website.com 80 

ではなく

$html = system("echo -e 'GET/HTTP/1.0\\n\\n' | ncat www.website.com 80"); 
             ^--^---note these 

を試してみてください。

0

それは次のようになります。私はechoコマンドから-eを削除する必要がありました

<?php 

$html = system("echo 'GET/HTTP/1.0\n\n' | ncat www.website.com 80"); 

print $html; 

?> 

。 ...

-e GET/HTTP/1.0 

囲碁フィギュア:私は、Wiresharkの上のパケットをチェックし、何がこのでし送信されました

関連する問題