//判断远程文件是否存在
/*
函数: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);
}
}
分享到:
相关推荐
php判断远程图片是否存在!真实例子!完美体现!
本次分析的焦点集中在ThinkPHP 5.0版本中的一个远程代码执行漏洞上。 远程代码执行(Remote Code Execution, RCE)是一种非常危险的安全问题,攻击者可以通过网络向服务器发送特定的请求来执行任意代码,从而获得对...
在这个过程中,首先会对数据库进行查询,判断数据库中是否已经存在该ISBN对应的图片信息。如果不存在,则会通过调用QueryAmazon类的getImage方法来从Amazon的Web服务中获取远程图片的URL地址。 在获取远程图片URL...
这个版本在ThinkPhp5系列中占有重要地位,它在继承前代优点的基础上,对架构进行了优化,提升了性能,并引入了更多现代化的开发理念。本文将从核心概念、目录结构、路由机制、MVC模式、数据库操作、模板引擎等多个...
- **自动加载**:描述了ThinkPHP5.0中类和文件的自动加载机制。 - **Traits引入**:探讨了如何使用Traits来复用非继承关系的代码。 - **API友好**:重点介绍了ThinkPHP5.0在API开发方面的优化和支持。 #### 四、...
其还支持循环输出标签、比较标签、条件判断资源文件加载标签嵌套原生PHP定义标签错误和调试日志验证介绍日志驱动日志写入独立日志日志清空写入授权调试模式异常处理抛出异常Trace调试变量调试性能调试SQL调试远程...
ThinkPHP5.0涵盖了模型初始化、查询事件、事务操作、监听SQL、存储过程、数据集定义、新增更新删除查询、聚合、获取器、修改器、时间戳、只读字段、软删除、类型转换、数据完成查询范围、模型分层、数组访问和转换、...
- 注意配置文件中应该正确设置FTP的相关参数,如FTP_SEVER、FTP_HOST、FTP_NAME、FTP_PWD等,以确保可以成功连接到FTP服务器并上传文件。 5. 公共函数的添加: - 在ThinkPHP中,需要添加一些公共函数来处理文件...
综上所述,《ThinkPHP5.1完全开发手册》是一本全面介绍ThinkPHP5.1新特性、架构、组件使用及最佳实践的官方文档。对于想要深入学习和使用ThinkPHP5.1进行项目开发的开发者来说,这是一本不可多得的参考资料。
2. `ThinkPHP_getshell.exe`: 此文件很可能是利用工具,一旦扫描确定了漏洞存在,就可以部署这个工具来获取服务器的shell访问权限,实现远程代码执行。 3. `原理.txt`: 这个文件应该详细解释了这两种工具的工作原理...
内置标签库、循环输出标签、比较标签、条件判断、资源文件加载、标签嵌套、原生PHP定义标签、日志错误和调试、日志驱动、日志写入、独立日志、日志清空、写入授权、调试模式、异常处理、抛出异常、Trace调试、变量...
- `check`方法接收客户端的请求,根据版本号判断是否有新版本,并返回更新信息。 - `download`方法提供更新包的下载链接,客户端通过该链接获取更新文件。 2. **客户端实现** - 使用PHP编写一个定时任务或者...
- **获取内容**: 从模板文件中获取内容。 - **模板引擎**: 使用特定的模板引擎进行渲染。 #### 模板 - **变量输出**: 输出模板中的变量。 - **系统变量**: 特殊的系统变量。 - **使用函数**: 在模板中使用函数。 -...
模板引擎、模板赋值、模板渲染、输出替换、模板定位、模板标签变量输出、...判断、资源文件加载、标签嵌套、原生PHP定义、标签错误和调试、日志驱动、日志写入、独立日志、日志清空、写入授权、调试模式、异常处理、抛...
- **三元运算**:使用三元运算符在模板中进行条件判断。 - **原样输出**:避免模板引擎对内容的特殊处理。 - **模板注释**:模板内部的注释标记。 - **模板布局**:使用布局模板。 - **模板继承**:模板之间的...
ThinkPHP5.1还提供了多语言、分页、上传、杂项、命令行启动、内置服务器、查看版本、自动生成目录结构、创建类库文件、生成类库映射文件、清除缓存文件、生成配置缓存文件、生成数据表字段缓存、生成路由映射缓存...