Heim  >  Artikel  >  Backend-Entwicklung  >  thinkphp中判断远路及非远程文件是否存在

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

WBOY
WBOYOriginal
2016-06-13 10:54:18788Durchsuche

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);  } } 

?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn