Как подключить telnet и отправить команду и записать вывод в текстовый файл с помощью php
Мне нужно, чтобы telnet к порту и отправить команду и записать вывод в текстовый файл с помощью PHP. Как я это делаю?
на этом форуме есть то же имя, что и у telnet-соединения с использованием PHP, но у них есть ссылка на решение, а ссылка на решение не открыта, поэтому я должен повторить вопрос.
Также я пробую приведенный ниже код с 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);
}
?>
Поэтому, пожалуйста, помогите мне решить проблему.Как я telnet к порту localhost 80 и отправить команду GET / HTTP/1.1 и записать вывод в текстовый файл?
2 ответа
Конечно, с помощью простого дополнения ваш пример сценария может записать вывод в файл:
<?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' ) );
Вы действительно хотите сделать это с помощью Telnet? Как насчет:
echo file_get_contents("http://127.0.0.1:80");
Или, если вы хотите настроить запрос, вы можете использовать cURL - http://php.net/manual/en/book.curl.php