正文

php-asp-MSSQL2005-09-14 13:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yang/4737.html

分享到:

<?php
class php_asp_db{

    var $Fields = array();
    var $Records = array();
    var $Recnum;
    var $Fieldcount;

    function php_asp_db(){}
    function Query($sql){
        //取交警服务器IP
        $fp = fopen("/www/webroot/TrafficIP.txt", "r");
        if (flock($fp, LOCK_SH)) {
            $IP = fgets($fp, 20);
            $IP = substr($IP,0,strlen($IP)-1);//去除最后一个回车
            flock($fp, LOCK_UN);
        }
        else {//取IP失败
            echo "连接服务器失败,请稍后重试";
            exit;
        }
        fclose($fp);
        //$sql = str_replace(" ","%20",$sql);
        $sql = urlencode($sql);
        $handle = fopen ("http://$IP/test.asp?var=$sql", "r");
        if ($handle) {
            while (!feof($handle)) {
                $preTEXT = fgets($handle, 9999);
                $TEXT .= $preTEXT;
            }
            fclose($handle);
        }
        else{
            echo "连接服务器失败,请稍后重试";
            exit;
        }
        //echo $TEXT;
        $this->php_xml($TEXT);
    }
    function php_xml($str){
        $m = strpos($str,"<State>");
        $n = strpos($str,"</State>");
        if($m==0 || $n==0){//发生异常,没有成功
            return -1;
        }
        $m += strlen("<State>");
        $State = substr($str,$m,$n-$m);

        //取数据格式版本号
        $m = strpos($str,"<Version>");
        $n = strpos($str,"</Version>");
        $m += strlen("<Version>");
        $Version = substr($str,$m,$n-$m);
        if ($Version > "1.0.0"){
            echo "Warning!It maybe can't resolve correctly.";
        }
        //取数据记录数量
        $m = strpos($str,"<Recnum>");
        $n = strpos($str,"</Recnum>");
        $m += strlen("<Recnum>");
        $this->Recnum = substr($str,$m,$n-$m);
        //取数据字段数量
        $m = strpos($str,"<Fieldcount>");
        $n = strpos($str,"</Fieldcount>");
        $m += strlen("<Fieldcount>");
        $this->Fieldcount = substr($str,$m,$n-$m);

        //取字段名称
        for($i=0;$i<$this->Fieldcount;$i++){
            //echo $n."-";
            $m = strpos($str,"<Field>",$n);
            $n = strpos($str,"</Field>",$m);
            $m += strlen("<Field>");
            $this->Fields[$i] = substr($str,$m,$n-$m);
            //echo $m.",".$n."<br>";
            //echo $this->Fields[$i]."<p>";
        }

        //取数据
        $n = strpos($str,"<Table>",$n);
        for($i=0;$i<$this->Recnum;$i++){
            $m = strpos($str,"<Record>",$n);
            $n = strpos($str,"</Record>",$m);
            $m += strlen("<Record>");
            $Record = substr($str,$m,$n-$m);
            //echo
            for($j=0;$j<$this->Fieldcount;$j++){
                $x = strpos($Record,"<".$this->Fields[$j].">");
                $y = strpos($Record,"</".$this->Fields[$j].">");
                $x += strlen("<".$this->Fields[$j].">");
                $this->Records[$i][$j] = substr($Record,$x,$y-$x);
                $this->Records[$i][$this->Fields[$j]] = substr($Record,$x,$y-$x);
                //echo $m.",".$n."<br>";
                //echo $this->Records[$i][$j]."<br>";
            }
        }
    }//end function
}
//example
/*
$mssql = new php_asp_db();
//$mssql->Query("select * from v_reg where is_over=1 and reg_id>100000");
//if (!$sql) $sql = "select v_reg.*,VIOLATION_CODE.display from v_reg,VIOLATION_CODE where is_over=1 and reg_id>100000 and STATE_ID='U' and v_reg.v_action=VIOLATION_CODE.code";
if (!$sql) $sql = "select * from TallyRecord where CardNo='370213801123361'";
$mssql->Query($sql);

echo "<table border='1'><tr>";
    for($j=0;$j<count($mssql->Fields);$j++){
        echo "<th>".$mssql->Fields[$j]."</th>";
    }
    
echo "</tr>";

for($i=0;$i<count($mssql->Records);$i++){
    echo "<tr>";
    for($j=0;$j<count($mssql->Fields);$j++){
        echo "<td>".$mssql->Records[$i][$j]."</td>";
    }
    echo "</tr>\n";
}
echo "</table>";
*/
?>

阅读(333) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册