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

来源:互联网 发布:免费打印支票软件 编辑:程序博客网 时间:2024/06/05 02:35

最近公司有个网站要先判断服务器上的网页是否可用,然后在把值提交到这个网页上。使用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的提醒,而是自定义提醒。