php判断远程文件是否存在的三种方法
时间:2016-08-30
php判断本地服务器文件是否存在可以使用file_exists函数,但是该函数不能用于判断远程文件是否存在,要判断远程文件是否存在,我们可以使用fopen()函数或curl或get_headers函数,本文章向大家介绍fopen()和curl判断远程文件是否存在的实例。
方法一:使用curl判断远程文件是否存在:
function remoteFileExists($url) {
$curl = curl_init($url);
//don't fetch the actual page, you only want to check the connection is ok
curl_setopt($curl, CURLOPT_NOBODY, true);
//do request
$result = curl_exec($curl);
$ret = false;
//if request did not fail
if ($result !== false) {
//if request was ok, check response code
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$ret = true;
}
}
curl_close($curl);
return $ret;
}
$exists = remoteFileExists('http://manongjc.com/favicon.ico');
if ($exists) {
echo '文件存在';
} else {
echo '文件不存在';
}
方法二:使用fopen()判断远程文件是否存在
$file = 'http://manongjc.com/favicon.ico';
$file_exists = (@fopen($file, "r")) ? true : false;
方法三:使用fopen()判断远程文件是否存在
function remote_file_exists($url){
return(bool)preg_match('~HTTP/1\.\d\s+200\s+OK~', @current(get_headers($url)));
}
/* http://www.manongjc.com/article/1415.html */
$ff = "http://manongjc.com/favicon.ico";
if(remote_file_exists($ff)){
echo "file exist!";
}
else{
echo "file not exist!!!";
}
或
function is_url($url)
{
$array= get_headers($url);
$h= $array[0];
return( strlen($h==3) && ($h[2]=='2' || $h[2]=='3'));
}
注意:上面三种方法都是判断HTTP状态码(并没有下载文件),这样效率更高。
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC