Мне нужно автоматизировать некоторые функции наших систем, которые, к сожалению, не имеют API, только команды telnet.
Итак, я нашел это: http://www.geckotribe.com/php-telnet/, который по сути является классом Telnet для PHP.
Сначала у меня были странные проблемы, так как он пытался войти слишком быстро, поэтому я добавил дополнительный режим сна (2) между соединением и вводом имени пользователя и пароля.
Теперь к проблеме: кажется, что после выполнения одной команды, которая выводит только одну строку, следующая (которая является многострочным выводом) вешает систему на время от 2 минут до 15 секунд (в режиме отладки eclipse) , до 1 минуты 20 секунд при загрузке браузера (только после того, как я установил тайм-аут на 180 секунд ...).
Строка, в которой это происходит: $ r. = Fread ($ this-> fp, 1000); в функции DoCommand () класса.
Вот ссылка на скрипт, которую я пытаюсь выполнить, а также вывод, который я в итоге получаю (с модификацией для защиты информации ..)
код: http://pastebin.com/TXEHWa05
Выход: http://pastebin.com/mVFm5HM2
Есть идеи, как устранить причину этого? до сих пор мне никогда не требовался даже отладчик в моих проектах :(
В идеале я бы хотел завершить выполнение 2-3 команд по телнету максимум за 5 секунд ... не более.
(потому что, как только мы это выясним, я добавлю функцию отключения пользователя и т. д.).
Я надеюсь, что кто-то более опытный с таким использованием PHP с помощью fsockopen может помочь:)