PHP检测远端文件是否存在

Java代码  

  1. <?php  
  2. $url = 'http://example.com';  
  3. $hander_array = get_headers ( $url );  
  4. if ($header_array [0] == 'HTTP/1.1 200 OK') {  
  5.     echo '文件存在';  
  6. } else {  
  7.     echo '文件不存在';  
  8. }   

 简单解释一下上面的代码。get_headers的作用就是访问一个远程地址,把服务器发送的HTTP头以数组形式返回。而$header[0]则是服务器返回的状态码(如果不出意外的话状态码应该都是第一个返回的)。

要确定一个文件在远端服务器上存在,只需要确定访问这个文件返回的状态码是"HTTP/1.1 200 OK"就行了(当然你也可以判断如果状态码不是"HTTP/1.1 404 Not Found"的话则文件存在,不过总感觉不保险,毕竟还有其他的诸如301,400这类的状态码)。

获取三位HTTP响应码的例子:

Java代码  

  1. <?php  
  2. function get_http_response_code($theURL) {  
  3.     $headers = get_headers($theURL);  
  4.     return substr($headers[0], 9, 3);  
  5. }  
  6. ?>   

 排除重定向的例子:

Java代码  

  1. <?php  
  2. /** 
  3.  * Fetches all the real headers sent by the server in response to a HTTP request without redirects 
  4.  * 获取不包含重定向的报头 
  5.  */  
  6.    
  7. function get_real_headers($url,$format=0,$follow_redirect=0) {  
  8.   if (!$follow_redirect) {  
  9.     //set new default options  
  10.     $opts = array('http' =>  
  11.         array('max_redirects'=>1,'ignore_errors'=>1)  
  12.     );  
  13.     stream_context_get_default($opts);  
  14.   }  
  15.   //get headers  
  16.     $headers=get_headers($url,$format);  
  17.     //restore default options  
  18.   if (isset($opts)) {  
  19.     $opts = array('http' =>  
  20.         array('max_redirects'=>20,'ignore_errors'=>0)  
  21.     );  
  22.     stream_context_get_default($opts);  
  23.   }  
  24.   //return  
  25.     return $headers;  
  26. }  
  27. ?>   
时间: 2024-12-01 12:31:01

PHP检测远端文件是否存在的相关文章

一个获取远端文件的函数(Linux和Windows均适用)

window|函数 为了获取远端文件,编写了下面的一个小函数,基本各方面都考虑了,大家看看吧:function getpic($url,$dir,$name){    //获取url文件,然后存放到dir目录中,以name为文件名.    //如果缺省文件名,则保留原文件名.    $tmp=split("/",$url);    $fname=$tmp[count($tmp)-1];//获取文件名    if(empty($name)) {        $name=$fname;/

mysql-makefile编译不能检测到头文件类中的函数修改

问题描述 makefile编译不能检测到头文件类中的函数修改 很奇怪的问题,我写了一个测试程序,用makefile进行编译,但如果我在头文件里声明了新的函数,在.cpp文件中定义这个函数,make时会提示我----错误:成员函数'int mysql_soci_test::sum()'未在类'mysql_soci_test'中声明--这个错误,但如果我不用makefile编译,用g++直接编译,就不会有问题. 下面是我的g++语句:g++ mysql_soci_test.h mysql_soci_

vb.net中怎么操作远端文件

问题描述 我想对远端的文件进行操作,比如文件路径是\computernamesharefoldertest.txt,我用什么方法可以判断文件是否存在,或是获取某个路径下的文件名列表.system.IO.Directory.GetFiles只对本地有效,shlwapi中的pathfileexists也试过了,好像也只对本地文件有效.请大家帮我想想办法,小女子先谢过了!!!我的分不多,还请大家见谅! 解决方案 解决方案二:哪位高人帮我一下啊,急啊!解决方案三:怎么没人回答我啊!解决方案四:使用WMI

IOS检测指定路径的文件是否存在

  本文给大家分享的是在IOS开发中检测指定文件是否存在的方法,给大家汇总了4种,十分实用,小伙伴们根据自己的需求自由选择吧. 代码如下: - (NSString *)dataPath:(NSString *)file { NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"badge"];

ios-iphone检测文件更新的方法

问题描述 iphone检测文件更新的方法 开发了一个IOS应用,在文档目录中有一些文件,需要检测这些文件是否被编辑或者更改过.不知道应该怎么实现?还有如果获取最后一次修改的时间? 谢谢您的解答. 解决方案 下面的代码可以得到文件修改时间: NSFileManager* fileManager = [NSFileManager defaultManager];NSDictionary* attributes = [fileManager attributesOfItemAtPath:path er

基于哈希树的云存储完整性检测算法

基于哈希树的云存储完整性检测算法 颜湘涛 李益发 云存储服务使得用户无需大量软硬件投入即可享受大容量.高规格的存储服务,但是同时也带来了云环境下数据机密性.完整性和可用性等安全问题.针对云存储中的完整性问题,利用哈希树结构和大数模运算,提出了一种新的基于哈希树结构的数据完整性检测算法.分析结果表明,该算法使得用户只需在常量的存储.计算和网络资源下就能高概率地.正确地检测远端服务器数据文件的完整性,且支持文件数据的动态更新. 关键词 云计算,云存储,数据安全,数据完整性 基于哈希树的云存储完整性检

用Python实现通过哈希算法检测图片重复的教程

 Iconfinder 是一个图标搜索引擎,为设计师.开发者和其他创意工作者提供精美图标,目前托管超过 34 万枚图标,是全球最大的付费图标库.用户也可以在 Iconfinder 的交易板块上传出售原创作品.每个月都有成千上万的图标上传到Iconfinder,同时也伴随而来大量的盗版图.Iconfinder 工程师 Silviu Tantos 在本文中提出一个新颖巧妙的图像查重技术,以杜绝盗版. 我们将在未来几周之内推出一个检测上传图标是否重复的功能.例如,如果用户下载了一个图标然后又试图通过上

PHP单文件上传原理及上传函数的封装

服务器(临时文件)-->指定目录,当文件进入服务器时它就是临时文件了,这时操作中要用临时文件的名称tmp_name. //在客户端设置上传文件的限制(文件类型和大小)是不安全的,因为客户能通过源代码修改限制,所以在服务端这里设置限制. //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); //通过$_FILES接收上传文件的信息 $fileInfo = $_FILES['myFile']; function up

如何解决php中并发读写文件冲突的问题

对于日IP不高或者说并发数不是很大的应用,一般不用考虑这些!用一般的文件操作方法完全没有问题.但如果并发高,在我们对文件进行读写操作时,很有可能多个进程对进一文件进行操作,如果这时不对文件的访问进行相应的独占,就容易造成数据丢失. 例如:一个在线聊天室(这里假定把聊天内容写入文件),在同一时刻,用户A和用户B都要操作数据保存文件,首先是A打开了文件,然后更新里面的数据,但这里B也正好也打开了同一个文件,也准备更新里面的数据.当A把写好的文件保存时,这里其实B已经打开了文件.但当B再把文件保存回去