3

ポートにtelnetしてコマンドを送信し、PHPを使用して出力をtxtファイルに書き込む必要があります。どうすればよいですか?

このフォーラムでは、PHPを使用した同じ質問名​​のtelnet接続がありますが、ソリューションリンクがあり、ソリューションリンクが開いていないため、もう一度質問する必要があります。

また、 phpサイトから以下のコードを試しましたが、適切な出力がテキストファイルに保存されません。コード:

<?php
$fp = fsockopen("localhost", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: localhost\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

だから、私が問題を解決するのを手伝ってください。ローカルホストポート80にtelnetで接続し、コマンドGET / HTTP / 1.1を送信して、出力をテキストファイルに書き込むにはどうすればよいですか?

4

2 に答える 2

4

もちろん、簡単な追加で、サンプルスクリプトは出力をファイルに書き込むことができます。

<?php
$fp = fsockopen("localhost", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: localhost\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);

    $output = '';
    while (!feof($fp)) {
        $output .= fgets($fp, 128);
    }

    fclose($fp);
    file_put_contents( 'output.txt', $output );
}

それからまた、私はEduard7に同意します。リクエストを手動で行わず、PHPに解決させる方が簡単です。

<?php
// This is much easier, I imagine?
file_put_contents( 'output.txt', file_get_contents( 'http://localhost' ) );
于 2011-05-23T09:08:37.253 に答える
0

あなたは本当にtelnetでこれをしたいですか?どうですか:

echo file_get_contents("http://127.0.0.1:80");

または、リクエストをカスタマイズする場合は、cURLを使用できます-http ://php.net/manual/en/book.curl.php

于 2011-05-23T09:03:34.013 に答える