* @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));
}
}