要实现读取文件内容后,在页面上的各个单元能无刷新显示内容所要改变的内容。这个程序要实现接打电话的监控作用。
<?php
//while(1)
//{
//echo '';
$upack_result = "H2result";
$a = 0;
$fp = fopen("CommRd","r+b");
flock($fp,LOCK_SH);
$iftrue = 0;
$counter = 0;
$RxdCounter = 0;
$Rxcount = 0;
while(!feof($fp))
{
$data = fgetc($fp);
if(!feof($fp))
$result = unpack($upack_result,$data);
$connt[$a] = $result[result];
$a++;
}
for($i=0;$i<$a;$i++)
{
if($iftrue)
{
if($counter<2)
{
if($connt[$i]=='cc')
{
echo "检测到第二个是CC,数据错误!";
//$iftrue = 1;
//$counter = 0;
}
else
{
$tempbuffer[$counter++] = $connt[$i];
//echo $connt[$i];
}
}
else
{
//echo $counter;
$counter-= 2;
if($tempbuffer[1]==$counter)
{
$counter+= 2;
for($j=0; $j<$counter; $j++)
{
$RxdBuffer[$RxdCounter++] = $tempbuffer[$j];
//echo $tempbuffer[$j];
//echo '
';
}
$Rxcount+= 1;
$i-= 1;
$iftrue= 0;
$counter= 0;
//echo "找到一个完整数据!";
}
else
{
$counter+= 2;
$tempbuffer[$counter++] = $connt[$i];
//echo $connt[$i].'
';
//echo $tempbuffer[$counter++];
}
//echo $counter;
}
}
else
{
if($connt[$i]=='cc')
{
$iftrue = 1;
$counter = 0;
//echo "检测到第一个是CC,开始检测这段数据的完整!";
}
}
}
//require('define.php');
$DealCounter= 0;
echo "rxcount is:".$Rxcount;
while($Rxcount)
{
$Rxcount -= 1;
$command = $RxdBuffer[$DealCounter++];
// echo "command is:".$command;
// echo '
';
$legnth = $RxdBuffer[$DealCounter++];
// echo "legnth is:".$legnth;
// echo "
";
//$DealCounter+= $legnth;
//echo $DealCounter;
//echo '
';
// echo $RxdBuffer[$DealCounter];
// echo '
';
switch($command)
{
case 02:
// echo "问交换机时间".$RxdBuffer[$DealCounter++]."时".$RxdBuffer[$DealCounter++]."分".$RxdBuffer[$DealCounter++]."秒";
// echo '
';
$DealCounter += 4;
break;
case 68:
$panduanwen = $RxdBuffer[$DealCounter++];
switch($panduanwen)
{
case 0:
echo "挂机物理号";
echo $RxdBuffer[$DealCounter++];
echo $RxdBuffer[$DealCounter++];
echo "
";
$DealCounter += 2;
break;
case 1:
echo "提机物理号";
echo $RxdBuffer[$DealCounter++];
echo $RxdBuffer[$DealCounter++];
echo "
";
$DealCounter += 2;
break;
case 8:
echo "呼叫";
$DealCounter += 2;
echo $RxdBuffer[$DealCounter++];
echo $RxdBuffer[$DealCounter++];
echo "
";
break;
case 41:
echo "听忙音";
echo $RxdBuffer[$DealCounter++];
echo $RxdBuffer[$DealCounter++];
echo "
";
$DealCounter += 2;
break;
default:
$DealCounter += 4;
break;
}
break;
default:
$DealCounter+= $legnth;
break;
}
//echo "dealcounter is:".$DealCounter;
}
//echo "a is".$a;
flock($fp,LOCK_UN);
fclose($fp);
/*if($command==68&&$panduanwen==0)
{
$ft= fopen("CommRd","w+b");
flock($ft,LOCK_SH);
flock($ft,LOCK_UN);
fclose($ft);
}*/
//}