sele 发表于 2017-3-20 13:56:06

php-asp-MSSQL

<?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>";
*/
?>
页: [1]
查看完整版本: php-asp-MSSQL