Как подключить telnet и отправить команду и записать вывод в текстовый файл с помощью php - PullRequest
2 голосов
/ 23 мая 2011

Мне нужно подключиться к порту через telnet, отправить команду и записать вывод в текстовый файл с использованием PHP. Как это сделать?

на этом форуме имеют то же имя вопроса подключение к telnet с использованием PHP , но у них есть ссылка на решение, а ссылка на решение не открыта, поэтому я должен снова задать вопрос.

Также я пробую приведенный ниже код с php site , но он не сохраняет правильный вывод в текстовый файл. Код:

<?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 локального хоста, отправить команду GET / HTTP / 1.1 и записать вывод в текстовый файл?

Ответы [ 2 ]

4 голосов
/ 23 мая 2011

С помощью простого дополнения ваш пример сценария может записать вывод в файл, конечно:

<?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' ) );
0 голосов
/ 23 мая 2011

Вы действительно хотите сделать это с помощью telnet? Как насчет:

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

Или, если вы хотите настроить запрос, вы можете использовать cURL - http://php.net/manual/en/book.curl.php

...