diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2010-12-13 08:08:38 +0100 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2010-12-13 08:08:38 +0100 |
| commit | ee05c3a28ae30f6b30b559715eef017e8fa47f5a (patch) | |
| tree | 65c8b9159cbf69c5ddc3768559b4e3bb5e4a863e /Wrt3g/HtmlParser.php | |
| parent | ec676e677a4d0ae220fcea546d37fe7291f82b72 (diff) | |
| download | linksys-wrt3g-tools-ee05c3a28ae30f6b30b559715eef017e8fa47f5a.tar.gz linksys-wrt3g-tools-ee05c3a28ae30f6b30b559715eef017e8fa47f5a.zip | |
move html parsing into own class
Diffstat (limited to 'Wrt3g/HtmlParser.php')
| -rw-r--r-- | Wrt3g/HtmlParser.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/Wrt3g/HtmlParser.php b/Wrt3g/HtmlParser.php new file mode 100644 index 0000000..03ac574 --- /dev/null +++ b/Wrt3g/HtmlParser.php @@ -0,0 +1,76 @@ +<?php +/** +* HTML parsing for the linksys router HTML pages +* +* PHP version 5 +* +* @category Tools +* @package linksys-wrt3g-tools +* @author Christian Weiske <cweiske@cweiske.de> +* @license AGPL v3 +* @link http://cweiske.de/linksys-wrt3g-tools.htm +*/ +class Wrt3g_HtmlParser +{ + protected static $arTranslations = array( + 'GPRS_MSG.WWBEAR' => 'type', + 'GPRS_MSG.NNAME' => 'network', + 'GPRS_MSG.STRENGTH' => 'signal strength', + 'GPRS_MSG.ACQUIRING' => 'aquiring', + 'GPRS_MSG.WWBEAR_GPRS' => 'GPRS', + 'GPRS_MSG.WWBEAR_UMTS' => 'UMTS', + ); + + + + /** + * Parses the body of /index_wstatus1.asp and returns extracted values. + * + * @param string $body HTML document to parse + * + * @return array Array of key-value pairs + */ + public function index_wstatus1($body) + { + $arRetval = array(); + $arMatches = array(); + preg_match_all('#>Capture\(([^)]+)\)</#', $body, $arMatches); + $arData = array(); + reset($arMatches[1]); + while (current($arMatches[1])) { + $key = current($arMatches[1]); + $value = next($arMatches[1]); + if (isset(self::$arTranslations[$key])) { + $key = self::$arTranslations[$key]; + } + if (isset(self::$arTranslations[$value])) { + $value = self::$arTranslations[$value]; + } + $arRetval[$key] = $value; + next($arMatches[1]); + } + + return $arRetval; + } + + + + /** + * Parses the body of /index_wstatus2.asp and returns extracted values. + * + * @param string $body HTML document to parse + * + * @return array Array with "connection" as key and one of "connecting", + * "connected" or "disconnected" as value. + */ + public function index_wstatus2($body) + { + preg_match('/var status2 = "(.+)"/', $body, $arMatches); + + $strStatus = $arMatches[1]; + //Connecting + //Disconnected + //Connected + return array('connection' => strtolower($strStatus)); + } +}
\ No newline at end of file |
