处理xml格式接口
来源:互联网 发布:起重机模拟软件 编辑:程序博客网 时间:2024/06/05 10:39
$date = date('Y-m-d_G:i:s');
$number=array();
$command = "curl -d \"<?xml version='1.0' encoding='iso-8859-1................'//xml格式文本处理
function cur_xml($result){
$xml = simplexml_load_string($result); //XML字符串载入对象
$xml = (int) $xml->params->param->value->int;//获取状态码
return $xml;
}
//html格式文本处理
function cur_html($result){
$html = preg_replace("/.*<title>/is",'',$result);//将title之前内容替换
$html = preg_replace("/<\/title>.*/is",'',$html);//将/title之后的内容替换,截取出title之前的内容
return $html;
}
//调用接口返回值
function cur_url($command) {
$url = popen($command, "r");//执行curl -d
$url = fgets($url);//取得结果
$url = mb_convert_encoding($url, "GBK", "UTF-8");//字符编码转换
return $url;
pclose($fp);
}
//截取关键字,判断
$result=cur_url($command);
$a=substr($result,0,5);
switch ($a) {
case "<html":
echo "返回结果类型:"." html格式"."\n";
$result = cur_html($result);
$status=0;
break;
case "<?xml":
echo "返回结果类型:"." xml格式"."\n";
$result = cur_xml($result);
if ($result ==1){
$status=1;
}else{
$status=0;
}
break;
default:
$result="未知错误,请测试4个接口IP的连通性";
$status=0;
break;
}
$num=1;
$new=1;
//判断文件是否存在
if (!file_exists("user_door")) {
file_put_contents("user_door", "");//文件不存在则创建文件
}
//打开文件,更新返回结果的值
$fp = fopen("user_door", "r");
$all = "";
$stat = true;//设置状态值,用于判断返回的结果名是否存在
//用于统计出总数
$count=file("user_door");//file会将所有行存入数组
foreach ($count as $value) {
$n = explode(',', $value);//以,分隔,存入数组
$num=$n[1]+$num;//累加所有结果出现次数
}
//遍历文件内容,用于查找结果名是否存在,存在则更新对应的值
while (!feof($fp)) {
$s = fgets($fp, 4096);//获取文件的一行数据
$a = explode(',', $s);//将一行数据以,分隔成数组
//结果名判断是否存在
if ($a[0] == $result) {
$new=$a[1]+1;
//echo $new;
$a[1] = "$new\n";//更新对应的值
$s = join(',', $a);//将数组以,整合成一行字符串
$stat = false;//状态值,说明返回结果名是存在的,并已经更新对应的值
}
$all .= $s;
}
//如果返回的结果名不存在,则插入新值
if ($stat) {
$all .= "$result,$new\n";
}
fclose($fp);//关闭连接,保存数据
//打开连接,将处理过的字符串存放文件
$fp = fopen("user_door", "w");
fwrite($fp, $all);
fclose($fp);
//每周-的11:00 将发送状态报告
if ( date ("w")==1 && date("G:i")=="11:00")
{
$status=2;
}
echo "状态值".$status."时间".$date."\n";
//清空上周统计数据,重新计监控数据
if ( date ("w")==1 && date("G:i")=="11:03")
{
$clear = fopen("user_door", "w");
fwrite($clear, "");
fclose($clear);
exit;//添加exit是因为一分钟内可能会时行两到三次清空,可能会有误报警。
}
//if ( $status==0 or $status==2)
//{
//将数据整合成一条字符串
$str="";
$fp1 = fopen ("user_door","r");
while (!feof($fp1))
{
$s= fgets($fp1);
$a=explode(",", $s);
$q=(int)($a[1]/$num*100)."%";//计算每种结果的百分比
//添加判断是因为最后会有一条空值,避免将空值整合
if ($a[0]!=FALSE){
if ($a[0]=="1"){
$a[0]="1(接口正常)";
}
if ($a[0]=="-4"){
$a[0]="-4(数据库错误)";
}
$str .="状态值:".str_replace(' ','',$a[0])."出现次数:".trim($a[1])."百分比:".$q."--";//将所有结果整合成相应格式
}
}
fclose($fp1);
$number="访问接口总数:".$num."-"."结果分析:".$str;
echo $number;
file_get_contents()调用报警接口
- 处理xml格式接口
- 利用XML接口处理XML串数据
- aspx 输出 xml格式的接口数据
- 连接对方接口得到格式xml数据
- 通信接口封装json、XML格式数据
- C# 获取接口数据(xml格式)转为json格式
- 处理XML格式参数的请求
- XMLHttpRequest处理xml格式的返回数据
- 用php处理xml格式的字符串
- XML格式文档的一些处理函数
- Ajax 三级联动,处理xml格式数据
- ajax处理返回的xml格式数据
- Scrapy 0.22.2 处理XML接口数据
- php 获取xml接口数据的处理
- Xml处理——获取Xml格式数据
- .Net服务端Soap接口返回xml的前缀格式问题
- 中国天气网接口返回json格式分析及接口(XML、图片接口)说明!
- 中国天气网接口返回json格式分析及接口(XML、图片接口)说明!
- Linux 内核线程间同步
- 返回临时变量的引用
- CS/CSS架构应用的软件性能测试模型分析
- Ubuntu升级到12.04后Subclipse报Failed to load JavaHL Library错误的解决方法
- 为redhat增加apt包管理功能
- 处理xml格式接口
- 新浪微博Android客户端学习记录四:完成OAuth认证
- 在CDN环境下的网站 面临着新的安全威胁
- Android中的权限
- 笔记:函数相关注意的地方
- 教你如何用Squid做CDN把公司做到上市
- mysql客户端连接无法找到sock文件的ERROR 2002错误
- shell note01:some shell combinations
- quicksortNew;partitionNew