⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlfunc.php

📁 The Kannel Open Source WAP and SMS gateway works as both an SMS gateway, for implementing keyword b
💻 PHP
字号:
<?php

/*
 * xmlfunc.php -- Kannel's XML status output parsing functions.
 */

if (empty($XMLFUNC_PHP)) {
    $XMLFUNC_PHP = 1;


function startElement($parser, $name, $attrs) {
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        print "  ";
    }
    print "$name\n";
    $depth[$parser]++;
}


function endElement($parser, $name) {
    global $depth;
    $depth[$parser]--;
}


function GetElementByName($xml, $start, $end) {
    $startpos = strpos($xml, $start);
    if ($startpos === false) {
        return false;
    }
    $endpos = strpos($xml, $end);
    $endpos = $endpos + strlen($end); 
    $endpos = $endpos - $startpos;
    $endpos = $endpos - strlen($end);
    $tag = substr($xml, $startpos, $endpos);
    $tag = substr($tag, strlen($start));
    return $tag;
}


function XPathValue($xpath, $xml) {
    $XPathArray = explode("/", $xpath);
    $node = $xml;
    while (list($key, $value) = each($XPathArray)) {
        $node = GetElementByName($node, "<$value>", "</$value>"); 
    }
  
    return $node;
}


function nf($number) {
    return number_format($number, 0, ",", ".");
}

function nfd($number) {
    return number_format($number, 2, ",", ".");
}


function display_uptime($sec) {
	 $d = floor($sec/(24*3600));
	 $sec = $sec - ($d*24*3600);
	 $h = floor($sec/3600);
	 $sec = $sec - ($h*3600);
	 $m = floor($sec/60);
	 $sec = $sec - ($m*60);
	 $s = $sec;
	
	 return $d."d ".$h."h ".$m."m ".$s."s";
} 

function check_status($status, $xml) { 

    $x = XPathValue("gateway/smscs", $xml);
    /* loop the smsc */ 
    $i = 0;
    $n = 0;
    while (($y = XPathValue("smsc", $x)) != "") {
        $i++;
        if (substr(XPathValue("status", $y), 0, strlen($status)) == $status) {
           $n++;
        }
        $a = substr($x, strpos($x, "</smsc>") + 7);
        $x = $a;
    }

    return $n;
}

function get_smscids($status, $xml) { 

    $x = XPathValue("gateway/smscs", $xml);
    /* loop the smsc */ 
    $i = 0;
    $n = "";
    while (($y = XPathValue("smsc", $x)) != "") {
        $i++;
        if (substr(XPathValue("status", $y), 0, strlen($status)) == $status) {
           $n .= XPathValue("id", $y)." ";
        }
        $a = substr($x, strpos($x, "</smsc>") + 7);
        $x = $a;
    }

    return $n;
}

function smsc_details($inst, $xml) { 
    global $config;

    $x = XPathValue("gateway/smscs", $xml);
    /* loop the smsc */ 
    $i = 0;
    while (($y = XPathValue("smsc", $x)) != "") {
        $i++;
        echo "<tr><td colspan=9><hr/></td></tr>\n";
        echo "<tr><td valign=top align=center class=text>\n";
        echo "($inst)";
        echo "</td><td valign=top class=text>\n";
        $smsc = XPathValue("id", $y);
        echo "<b>".$smsc."</b> <br />";
        echo XPathValue("name", $y)." <br />";

        echo "</td><td valign=top class=text nowrap>\n";
        $a = explode(" ", XPathValue("status", $y));
        switch ($a[0]) {
            case "online":
                echo "<span class=green>online</span> <br />";
                echo " (".$z."s)";
                break;
            case "disconnected":
                echo "<span class=red>disconnected</span>";
                break;
            case "connecting":
                echo "<span class=red>connecting</span>";
                break;
            case "re-connecting":
                echo "<span class=red>re-connecting</span>";
                break;
            case "dead":
                echo "<span class=text>dead</span>";
                break;
            case "unkown":
                echo "<span class=text>unknown</span>";
                break;

        }

        echo "</td><td valign=top class=text nowrap>\n";
        if (ereg("online (.*)s", XPathValue("status", $y), $regs)) {
            $z = $regs[1];
            echo date("Y-m-d H:i:s", mktime()-$z)."<br />";
				echo "uptime ".display_uptime($z);
        }
        echo "</td><td valign=top align=right class=text nowrap>\n";
        echo nf(XPathValue("received", $y));
        echo "</td><td valign=top align=right class=text nowrap>\n";
        echo nf(XPathValue("sent", $y));
        echo "</td><td valign=top align=right class=text nowrap>\n";
        echo nf(XPathValue("failed", $y));
        echo "</td><td valign=top align=right class=text nowrap>\n";
        echo nf(XPathValue("queued", $y));
        echo "</td><td valign=top align=right class=text nowrap>\n";
        echo "<a class=href href=\"#\" onClick=\"admin_smsc_url('stop-smsc', '";
        echo $config["base_url"]."/stop-smsc?smsc=$smsc','";
        echo "$smsc', '".$config["admin_passwd"]."');\">stop</a> <br />";
        echo "<a class=href href=\"#\" onClick=\"admin_smsc_url('start-smsc', '";
        echo $config["base_url"]."/start-smsc?smsc=$smsc','";
        echo "$smsc', '".$config["admin_passwd"]."');\">start</a>";
        echo "</td></tr>\n";
        $a = substr($x, strpos($x, "</smsc>") + 7);
        $x = $a;
    }

    return $n;
}


} /* XMLFUNC_PHP */
	    
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -