【求助】怎样用PHP判断一个网站是否能打开?
具体情况是这样的:
我们公司有用网络打印机,此打印机可以用浏览器连接查看印量。但每次统计都要登入每台打印机进入抄印量,很麻烦。
现在我想用PHP编程自动抄出印量,基本上原理就是用file_get_contents()函数抓取网页内容,再用preg_match_all()函数匹配出印量再作统计。
但现在出现一个问题,就是用file_get_contents()函数抓取网页内容时,如果打印机关机,程序就会一直等待,最后什么也不出现。
我想请问如何用PHP来判断一个网页或IP是否在线,如在线则执行程序,如不在线则跳出并返回一个信息。
谢谢!
我们公司有用网络打印机,此打印机可以用浏览器连接查看印量。但每次统计都要登入每台打印机进入抄印量,很麻烦。
现在我想用PHP编程自动抄出印量,基本上原理就是用file_get_contents()函数抓取网页内容,再用preg_match_all()函数匹配出印量再作统计。
但现在出现一个问题,就是用file_get_contents()函数抓取网页内容时,如果打印机关机,程序就会一直等待,最后什么也不出现。
我想请问如何用PHP来判断一个网页或IP是否在线,如在线则执行程序,如不在线则跳出并返回一个信息。
谢谢!
作者: singiu 发布时间: 2011-07-22
<?php
$m=@file_get_contents("http://www.baidu.com");
if(is_bool($m)){
echo "无法打开网站";
//do someing echo errormsg
}else{
//ok do
echo substr($m,1,10);
}
$m=@file_get_contents("http://www.baidu.com");
if(is_bool($m)){
echo "无法打开网站";
//do someing echo errormsg
}else{
//ok do
echo substr($m,1,10);
}
作者: crazhou 发布时间: 2011-07-22
这个好像也不行,我用了一个根本不存在的地址来试,发现还是什么也不返回,页面还是空白的。
不过还是谢谢你~
不过还是谢谢你~
作者: singiu 发布时间: 2011-07-22
终于找到解决方法了,不敢私藏,拿出来大家一起学习:
<?php
$url="192.168.1.100";
exec("ping $url",$pingResult);
if(in_array("请求超时",$pingResult))
{
echo $url."ping不通!";
}else
{
echo $url."能ping通!";
}
unset($pingResult);
?>
<?php
$url="192.168.1.100";
exec("ping $url",$pingResult);
if(in_array("请求超时",$pingResult))
{
echo $url."ping不通!";
}else
{
echo $url."能ping通!";
}
unset($pingResult);
?>
作者: singiu 发布时间: 2011-07-22