PHP判断远程文件是否存在

时间:2021-05-22

<?php
  
  function remote_file_exists($url_file){
  //检测输入
  $url_file = trim($url_file);
  if (empty($url_file)) { return false; }
  $url_arr = parse_url($url_file);
  if (!is_array($url_arr) || empty($url_arr)){return false; }
  //获取请求数据
  $host = $url_arr['host'];
  $path = $url_arr['path'] ."?".$url_arr['query'];
  $port = isset($url_arr['port']) ?$url_arr['port'] : "80";
  //连接服务器
  $fp = fsockopen($host, $port, $err_no, $err_str,30);
  if (!$fp){ return false; }
  //构造请求协议
  $request_str = "GET ".$path."HTTP/1.1\r\n";
  $request_str .= "Host:".$host."\r\n";
  $request_str .= "Connection:Close\r\n\r\n";
  //发送请求
  fwrite($fp,$request_str);
  $first_header = fgets($fp, 1024);
  fclose($fp);
  //判断文件是否存在
  if (trim($first_header) == ""){ return false;}
  if (!preg_match("/200/", $first_header)){
  return false;
  }
  return true;
  }
  ?>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章