システムのいくつかの機能を自動化する必要がありますが、残念ながら API はなく、telnet コマンドしかありません。
それで、私はこれを見つけました: http://www.geckotribe.com/php-telnet/これは基本的に PHP の Telnet クラスです。
ログインしようとするのが速すぎるため、最初は奇妙な問題が発生したため、接続とユーザー名とパスワードの入力の間に余分な sleep(2) を追加しました。
問題は次のとおりです。1行のみを出力する1つのコマンドを実行した後、次のコマンド(複数行の出力)でシステムが2分15秒(Eclipseデバッグモードで)ハングアップするようです。ブラウザのロードで最小20秒(タイムアウト設定を180秒に強制した後のみ...)。
それが発生する行は次のとおりです。 $r.=fread($this->fp,1000); クラスの DoCommand() 関数で。
これは、実行しようとしているスクリプトへのペーストビン リンクと、最終的に得られる出力です (情報を保護するための変更が加えられています..)
コード: http://pastebin.com/TXEHWa05
出力: http://pastebin.com/mVFm5HM2
この原因をデバッグする方法はありますか? これまでのところ、プロジェクトでデバッガーさえ必要としたことはありません:(理想的には、telnetで最大5秒で2〜3個のコマンドの実行を終了したいと思います..それ以上ではありません.(これを理解したら、機能を追加します)ユーザーを切断するなど)。
fsockopen を使用したこの種の PHP の使用に慣れている人が助けてくれることを願っています :)