欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

thinkphp中判断远路及非远程文件是否存在

程序员文章站 2022-05-22 18:06:44
...
thinkphp中判断远程及非远程文件是否存在
 

 //判断远程文件是否存在
 /*
   函数:remote_file_exists
   功能:判断远程文件是否存在
   参数: $url_file - 远程文件URL
     $flag  - true为判断远程文件,false为判断非远程文件
   返回:存在返回true,不存在或者其他原因返回false
 */ 
 static function remote_file_exists($url_file,$flag = true){
  if($flag == true){ //默认是判断远程文件
   //检测输入
   $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;
  }else if($flag == false){  //非远程文件
   return file_exists($url_file);
  }
 } 

?

thinkphp中判断远路及非远程文件是否存在

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频