PHP验证网页是否可用的一些方法

最近公司有个网站要先判断服务器上的网页是否可用,然后在把值提交到这个网页上。使用php来检测网页是否可用,没怎么接触过php,搞了两天,基本上是可以检测了。现把代码贴上:

 <?php 
  //
  $url = "http://blog.csdn.net/xuezhongsong/archive/2009/09/17/4561488.aspx";  
  $ctx = stream_context_create(array('http' => array('timeout' => 10)));  
  //获取网页内容
  $result = @file_get_contents($url, 0, $ctx);  
  if($result){  
  echo "<Script language='JavaScript'> alert('成功!');</Script>";
   
  }else{  
  echo "<script>alert('服务器繁忙,请稍后再试!'); </script>";
  }  
  //以下是另一种方法判断服务器网页是否响应,但是当本页处理时间超时会有点问题。
  /*$fp = fsockopen("localhost", 80, &$errno, &$errstr, 10);
  socket_set_timeout($fp, 0, 10);
  if(!$fp && socket_set_timeout($fp, 0, 10))
  {
  echo "<script>alert('服务器繁忙,请稍后再试!'); </script>";
  }else{
  $stream="";
  fputs($fp,"GET /edulifebg.cn/SynEnrollData.asp HTTP/1.0/nHost: localhost/n/n Connection: close/r/n/r/n");
  $i=0;
  $inheader=1;
  error_reporting(0); 
  while(!feof($fp) && $inheader){
  $line = fgets($fp,1024); 
  //http请求的获取头部
  if ($inheader && ($line == "/n" || $line == "/r/n")) {
  $inheader = 0;
  }
  if ($inheader != 0) {
  $stream.= $line;
  } 
  }
  echo $stream;
  $mark=trimHeader($stream);
  if($mark==200){
  echo "<Script language='JavaScript'> alert('成功!');</Script>";
  }else{
  echo "<Script language='JavaScript'> alert('服务器繁忙,请稍后再试...!".$mark."');</Script>";
  }
  }
  fclose($fp);
  //获取HTTP状态码:200表示成功,400错误请求,服务器不理解请求的语法,404 服务器找不到请求的网页,503(服务不可用)服务器目前无法使用(由于超载或停机维护)等等
  function trimHeader($content){  
  $array=split(" ",$content);  
  return trim($array["1"]);  
  }
  */
?>

 

PS:

PHP没有很好的异常捕获机制,不爽!对php不熟悉,怎么把错误获取到,然后自定义提醒呢!比如一个页面超时,不要显示php的提醒,而是自定义提醒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值