При подключении от терминала к удаленному устройству получаю:
Trying XX.XX.XX.XX...
Connected to XX.XX.XX.XX.
Escape character is '^]'.User Name:
Но при подключении через PHP и чтении данных с помощью функции socket_read
Я получил:
��������User Name:
Вот как выглядит мой код подключения и чтения:
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$buffer = @socket_read($this->socket, $this->length);
Почему я не получаю регулярный текст при подключении с php?
Это связано с тем, что вывод, который вы получаете выше, происходит не с сервера, а с подробного описания telnet. Технически, он не играет роли в стеке сокетов, а представляет собой простое сообщение для пользователей о том, как использовать telnet. С другой стороны, то, что вы сделали в PHP, это программирование сокетов, так что вы увидите только то, что следует за телнетом. приветственное сообщение
Что касается этих персонажей в начале, взгляните на RFC
Других решений пока нет …