X-Git-Url: https://git.cweiske.de/linksys-wrt3g-tools.git/blobdiff_plain/126f3b06d394c5252eaf308b55d8f6933ea48265..c5139cfd6db3f77bfd3bb3dc36bb915c8a014e0f:/Wrt3g/HtmlParser.php diff --git a/Wrt3g/HtmlParser.php b/Wrt3g/HtmlParser.php index 03ac574..970b170 100644 --- a/Wrt3g/HtmlParser.php +++ b/Wrt3g/HtmlParser.php @@ -19,6 +19,8 @@ class Wrt3g_HtmlParser 'GPRS_MSG.ACQUIRING' => 'aquiring', 'GPRS_MSG.WWBEAR_GPRS' => 'GPRS', 'GPRS_MSG.WWBEAR_UMTS' => 'UMTS', + 'GPRS_MSG.GOOD' => 'good', + 'GPRS_MSG.EXCELLENT' => 'excellent', ); @@ -32,14 +34,39 @@ class Wrt3g_HtmlParser */ public function index_wstatus1($body) { - $arRetval = array(); + $doc = new DomDocument(); + $doc->loadHtml($body); + $xpath = new DOMXPath($doc); + $entries = $xpath->query('//table/tr/td'); + $arMatches = array(); - preg_match_all('#>Capture\(([^)]+)\)saveXML($entry); + $s = str_replace( + array(''), + '', $s + ); + $s = strip_tags($s); + //some strange utf8 space char + $s = str_replace("\xC2\xA0", ' ', $s); + $s = trim($s); + $s = str_replace( + array('Capture(', ') :'), + '', $s + ); + if (substr($s, -1) == ')') { + $s = substr($s, 0, -1); + } + $arMatches[] = $s; + } + + + $arRetval = array(); $arData = array(); - reset($arMatches[1]); - while (current($arMatches[1])) { - $key = current($arMatches[1]); - $value = next($arMatches[1]); + reset($arMatches); + while (current($arMatches)) { + $key = current($arMatches); + $value = next($arMatches); if (isset(self::$arTranslations[$key])) { $key = self::$arTranslations[$key]; } @@ -47,7 +74,7 @@ class Wrt3g_HtmlParser $value = self::$arTranslations[$value]; } $arRetval[$key] = $value; - next($arMatches[1]); + next($arMatches); } return $arRetval;