aboutsummaryrefslogtreecommitdiff
path: root/Wrt3g/HtmlParser.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2010-12-13 08:08:38 +0100
committerChristian Weiske <cweiske@cweiske.de>2010-12-13 08:08:38 +0100
commitee05c3a28ae30f6b30b559715eef017e8fa47f5a (patch)
tree65c8b9159cbf69c5ddc3768559b4e3bb5e4a863e /Wrt3g/HtmlParser.php
parentec676e677a4d0ae220fcea546d37fe7291f82b72 (diff)
downloadlinksys-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.php76
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