PHP判断远程文件是否存在的四种方法

打印 上一主题 下一主题

主题 909|帖子 909|积分 2727

PHP file_exists()函数用于检查服务器上是否存在一个文件或目录。但是,如果要检查远程服务器上的文件是否存在,file_exists()函数将不可用。
本文将介绍php中如何判断远程文件是否存在的几种方法。文章将演示并描述检查远程文件是否存在的各种方法。

  • PHP curl() 方法
  • PHP fopen() 方法
  • PHP get_headers() 方法
  • PHP file_get_contents() 方法
 
使用 PHP curl() 判断远程文件是否存在

CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容。
PHP建立CURL请求的基本步骤

  • 初始化:curl_init()
  • 设置属性:curl_setopt().有一长串cURL参数可供设置,它们能指定URL请求的各个细节。
  • 执行并获取结果:curl_exec()
  • 释放句柄:curl_close()
您可以使用cURL来检查远程服务器上文件是否存在。下面的代码片段展示了如何在PHP中使用cURL检查远程文件是否存在。
  1. [/code] 
  2. [size=5]使用 PHP fopen() 判断远程文件是否存在[/size]
  3. fopen() 函数用于打开一个文件或 URL 地址。如果打开失败,本函数返回 FALSE 。
  4. 语法:
  5. [code]resource fopen( string filename, string mode )
复制代码
参数 filename 为尝试打开/创建的文件名,参数 mode 指定了打开模式,其可能的值如下:
打开模式说明r只读,并将文件指针指向文件开始位置r+读写,将文件指针指向文件开始位置w只写,将文件指针指向文件开始位置并将文件内容清空,如果文件不存在则尝试创建之w+读写,将文件指针指向文件开始位置并将文件内容清空,如果文件不存在则尝试创建之a追加,将文件指针指向文件末尾来操作,如果文件不存在则尝试创建之a+读写追加,将文件指针指向文件末尾来操作,如果文件不存在则尝试创建之x只写,并创建文件,如果文件已存在,则 fopen() 调用失败并返回 FALSEx+读写,并创建文件,如果文件已存在,则 fopen() 调用失败并返回 FALSE下面的代码片段展示了如何使用PHP中的fopen()函数检查远程文件是否存在。
  1. [/code] 
  2. [size=5]使用PHP get_headers()判断远程文件是否存在[/size]
  3. get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。
  4. 函数定义
  5. [code]array get_headers ( string $url [, int $format = 0 ] )
复制代码
参数
format 如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名,如果设置默认为0
下面的代码片段展示了如何使用PHP中的get_headers()函数检查远程文件是否存在。
  1. [/code] 
  2. [size=5]使用PHP file_get_contents()判断远程文件是否存在[/size]
  3. file_get_contents() 函数把整个文件读入一个字符串中。
  4. 和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。
  5. file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。
  6. 语法
  7. [code]file_get_contents(path,include_path,context,start,max_length)
复制代码
参数
参数描述path必需。规定要读取的文件。include_path可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。context可选。规定文件句柄的环境。
context 是一套可以修改流的行为的选项。若使用 null,则忽略。
start可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。max_length可选。规定读取的字节数。该参数是 PHP 5.1 新加的。下面的代码片段展示了如何使用PHP中的file_get_contents()函数检查远程文件是否存在。 
  1. [/code]如果你不想遵循重定向,你可以这样做:
  2. [code]<?php
  3. $url = 'http://www.manongzj.com';
  4. $code = FALSE;
  5. $options['http'] = array(
  6.     'method' => "HEAD",
  7.     'ignore_errors' => 1,
  8.     'max_redirects' => 0
  9. );
  10. $body = file_get_contents($url, NULL, stream_context_create($options));
  11. sscanf($http_response_header[0], 'HTTP/%*d.%*d %d', $code);
  12. echo "Status code: $code";
  13. ?><br><br>以上就是本文的全部内容,希望对大家的学习有所帮助。更多教程请访问<a href="http://www.manongzj.com/" rel="noopener" target="_blank">码农之家</a>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表