`
hudeyong926
  • 浏览: 2016396 次
  • 来自: 武汉
社区版块
存档分类
最新评论

PHP检测远端文件是否存在

    博客分类:
  • PHP
PHP 
阅读更多
<?php
$url = 'http://example.com';
$hander_array = get_headers ( $url );
if ($header_array [0] == 'HTTP/1.1 200 OK') {
	echo '文件存在';
} else {
	echo '文件不存在';
} 

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

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

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

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

 排除重定向的例子:

<?php
/**
 * Fetches all the real headers sent by the server in response to a HTTP request without redirects
 * 获取不包含重定向的报头
 */
 
function get_real_headers($url,$format=0,$follow_redirect=0) {
  if (!$follow_redirect) {
    //set new default options
    $opts = array('http' =>
        array('max_redirects'=>1,'ignore_errors'=>1)
    );
    stream_context_get_default($opts);
  }
  //get headers
    $headers=get_headers($url,$format);
    //restore default options
  if (isset($opts)) {
    $opts = array('http' =>
        array('max_redirects'=>20,'ignore_errors'=>0)
    );
    stream_context_get_default($opts);
  }
  //return
    return $headers;
}
?> 
 
分享到:
评论

相关推荐

    php脚本资料电子书籍

    newsPHP 存在任意文件的上传和不全面的登入确认漏洞 Ofstar和phpind论坛安全性分析 Ofstar论坛安全性分析 osCommerce SQL Injection && DoS && Cross Site PHP Networking PHP Security, Part 3 PHP Session ...

    php网络开发完全手册

    1.4.6 PHP的配置文件php.ini的简介 13 1.4.7 PHP常用参数的配置 14 1.5 几种综合网络服务器系统的安装 14 1.5.1 XAMPP 14 1.5.2 WAMP 16 1.5.3 Appserv 17 1.5.4 EasyPHP 18 1.5.5 VertrigoServ 19 1.6 几种开发工具...

    树莓派3B+CSI摄像头+二自由度旋转云台结合使用Python+PHP等实现智能远程视频监控(毕业设计&课程设计&项目开发)

    主体使用Python和PHP编程,应用I2C通信与OpenCV等前沿技术,通过Frp内网穿透打通内外网数据传输,实现具有远程实时视频监控、运动检测及画面截图邮件预警、远程控制云台摄像头转动、监控画面截取及视频录制、Web端...

    KODExplorer 芒果云-资源管理器

    - 标签关闭提示:检测是否有未保存文件,文件修改实时修改是否修修改的按钮状态 ####fix bug:(bug解决和程序优化) - 文本文件编辑 文件名含有url编码则出错bug - 右键菜单在最下面时,右键位置重叠导致点击...

    基于树莓派+OpenCV的智能摄像头系统-实现远程实时视频监控、运动检测及画面截图邮件预警、远程控制云台摄像头转动、监控画面等

    本系统以树莓派3B+为嵌入式计算平台,与CSI摄像头、二自由度旋转云台结合,主体使用Python和PHP编程,应用I2C通信与OpenCV等前沿技术,通过Frp内网穿透打通内外网数据传输,实现具有远程实时视频监控、运动检测及...

    JAVA上百实例源码以及开源项目

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    网管教程 从入门到精通软件篇.txt

    如果系统检测到无效或非标准分区表标记,将提示用户是否继续执行该命令。除非您访问驱动器有问题,否则不要继续进行。向系统分区写入新的主引导记录可能破坏分区表并导致分区无法访问。  format  将指定的驱动器...

    GuardianGenius(守护精灵) 1.0.rar

    ,因此目前网络任何一款Web安全扫描程序都存在对大量文件进行扫描时极度占用服务器资源,并且容易在执行过程中导致IIS进程 假死从而影响网站运行。针对此现象,本程序首创缓冲扫描机制,利用Ajax技术对文件进行队列...

    multiCCL_f

     开始定位一个样本时,如果发现样本目录中存在旧的记录文件,  程序会读取并认可 旧记录中的特征码。 如果想完全重新开始定位,应该先把旧的记录文件删除或改名, 之后再打开multiCCL 。 2. 输出目录里不要放置...

    软件病毒特征码定位软件multiCCL

     开始定位一个样本时,如果发现样本目录中存在旧的记录文件,  程序会读取并认可 旧记录中的特征码。 如果想完全重新开始定位,应该先把旧的记录文件删除或改名, 之后再打开multiCCL 。 2. 输出目录里不要放置...

    ONES开源企业管理办公套件 v0.2.zip

    * APP化的项目组成 灵活的前后端插件机制 * 灵活的RBAC 工作流节点权限 行级权限扩展接口组合进行权限管理 * 应用支持无修改原版本文件进行二次开发 * 独特的通用视图功能,无需重复编写的前端文件 * 强大可定制...

    JAVA上百实例源码以及开源项目源代码

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    chost源码修改版

    控制端自动检测CPU使用率调整自己的工作线程, 稳定高效 宿主为svchost以系统服务启动,上线间隔为两分钟 心跳包机制防止意外掉线.. 支持HTTP和DNS上线两种方式 自动恢复SSDT(这功能干什么,大家都知道,免杀自己做吧)...

    tuzicms_v2.0.6_企业网站管理系统

    ●支持前台PC 端和手机端模板的切换,丰富网站开发的内容。 ●支持网站数据库的备份、优化、修复、还原等功能。 ●支持广告位的营销管理,可在后台新增广告位后,前台调用显示,并且支持广告位分类管理。 二、...

    SDCMS三网合一企业网站管理系统 v1.9

    SDCMS三网合一企业网站管理系统 v1.9更新日志:本次更新改动记录如下:【新增功能】1、新增后台订单搜索的订单号查询2、新增对上传文件的安全检测3、新增PC端微信扫码登录4、新增微信App里微信绑定后自动登录5、新增...

    java开源包4

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包1

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包11

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包2

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

Global site tag (gtag.js) - Google Analytics