UPSのWeb管理インターフェイスからステータスフィールドを取得して、データを作成している別のWebアプリケーションで利用できるようにすることを検討しています。私は自分のウェブ検索で探している情報を見つけることができないように見えるので、誰かがこれについて行く方法を知っているだろうかと思っていました。また、更新または再チェックするための値も必要です。以下のUPSWebインターフェイスの例では、最初にオンラインフィールドを確認しています。
質問する
106 次
1 に答える
1
これは非常に基本的な例であり、私はテストしていません(phpはインストールされていません)。
コントロールパネルのソースを調べて、必要な情報を含む要素を特定する方法を見つける必要があります。
以下のコードは(うまくいけば)IDを持つ要素を検索し、server-status
その要素が存在する場合はその要素をチェックしclass
てサーバーの状態を判別します。
ものを使用する必要はありませんdom
。正規表現などを使用して使用することもできます。必要な情報を正確に見つけることができる限り。
file_get_contents()
問題のページを表示するにはログイン資格情報が必要になる可能性があるため、cURLまたはそれよりも少し高度なものを使用する必要がある場合もあります。
<?php
$html = file_get_contents("http://path.to/your/control.panel");
// you may need to use cURL or something more advanced if you need to provide login credentials
$dom = new DOMDocument;
$dom->loadHTML($html);
$test = $dom->getElementById('server-status');
if ($test == NULL) {
// unable to find element, somethings up!
} else {
if ($test->getAttribute('class') == "online") {
// status element has "online" class, server is online
} else {
// status element does not have "online" class, somethings up!
}
}
?>
アップデート
その管理ソフトウェアのデモをざっと見てみましたが、役立つ要素id
やclass
名前がないように見えるので、私の例ほど単純ではありません。それでも実行可能です。
于 2013-03-11T13:23:05.427 に答える