- 浏览: 299300 次
文章分类
最新评论
-
一个ID的距离:
我了个擦~高端大气上档次啊~
js生成玫瑰花 源代码 -
abc382410124:
尝试使用开源的免费的编辑器了,学习了
Notepad++ 插件之 TextFX (安装及作用)
转自网络
is_file 判断文件是否存在并且检查指定的文件名是否是正常的文件;
file_exists 判断文件是否存在或者是目录是否存在;
is_dir 判断目录是否存在;
查看手册,虽然这两个函数的结果都会被缓存,但是is_file却快了N倍。
还有一个值得注意的:
文件存在的情况下,is_file比file_exists要快N倍;
文件不存在的情况下,is_file比file_exists要慢;
结论是,file_exits函数并不会因为该文件是否真的存在而影响速度,但是is_file影响就大了。
所以,第一次看py师兄的代码,发现他是这样用的:
if(file_exists(DATA_DIR.'~runtime.php') && is_file(DATA_DIR.'~runtime.php') && IS_DEPLOY){
include_once DATA_DIR.'~runtime.php';
}else{
……
}
大牛就是大牛,代码深刻呀
但是:
下面代码,
for($i=0; $i<10000; $i++){
is_file(__ROOT__ . '/App.php');
file_exists(__ROOT__ . '/App.php');
}
XDebug测试结果为:
php::is_file
————————————-
total self: 0.5ms
total cum: 0.5ms
calls: 10,000
php::file_exists
————————————-
total self: 41ms
total cum: 41ms
calls: 10,000
-----------------------------------------------------------------------------------------------
写php任何时候我都会想到效率,效率,因为你永远不知道运行你程序的网站的主机状况。
而且大部分主机都有iis ,cpu占用的限制,没有限制的主机还是别买了,呵呵
我一直以来都用file-exits 来判断文件是否存在,那天偶然发现有这么一说:is_file 比file_exits更快
写了一段代码测试了一下
$start_time = get_microtime();
for($i=0;$i<10000;$i++){
if(is_file('url.txt')) {
//do nothing;
}
}
echo 'is_file耗时-->'.(get_microtime() - $start_time).'<br>';
$start_time = get_microtime();
for($i=0;$i<10000;$i++){
if(file_exists('url.txt')) {
//do nothing;
}
}
echo 'file_exits-->'.(get_microtime() - $start_time).'<br>';
function get_microtime()//时间
{
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}
上面是1w次的测试,你会发现一个神奇结果
1.如果url.txt确实是存在的
那么is_file大约耗时 0.007sec.
file_exists耗时0.16sec.
is_file函数的确速度惊人!
但是别高兴太早,看另外一种情况
2.如果url.txt确实不存在
is_file耗时0.53sec.
file_exists耗时0.21sec.
3.看起来file_exits函数并不会因为该文件是否真的存在而影响速度,但是is_file影响就大了。
提示和注释: is_file(file)函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
目录:
观察各个权限:test对www是没有任何权限的,而执行文件index.php有读写执行权限,包含文件test.txt有读写权限。
运行结果:
既然成功了,说明file_exists()函数是受目录权限的限制的。
那什么样的目录权限影响file_exists()呢?
我做了几个实验:
1、文件的任何上级目录,只有写权限时报文件不存在;
2、文件的任何上级目录,只有读权限时也报文件不存在;
3、而当所有上级目录都有执行权限的时候,报文件是存在的,一切都正常。
结果,说明file_exists()在判断文件是否存在的时候是递归判断每个目录是不是有执行权限。
修改文件路径为相对路径,得出一样的结果。
发表评论
-
PHP+MySQL来实现在线测试quiz功能
2015-05-21 16:13 1009PHP+MySQL来实现在线测试quiz功能 -
PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
2014-03-17 11:24 569/** * 作用:FTP操作类( 拷贝、移动、删除文件/创 ... -
get_magic_quotes_gpc()
2013-05-14 16:23 339转自网络 在php的配置文件中,有个布尔值 ... -
php可编辑表格
2013-04-11 10:16 1903转自kongzimengsheng 编号 姓 ... -
Windows下使用VS2010编译PHP5.4
2013-04-03 13:31 1085转自: http://www.zhurouyoudu.co ... -
zend framework,,,,,
2013-03-22 15:07 663近几天看了看zf1 优点:数据处理、页面显示等 ... -
PHP 实现301转向代码
2013-03-20 10:06 798301转向定义(转自网络)301转向(或叫301重定 ... -
citymap
2013-03-08 17:32 623,,,,,,,, -
PHP 计算页面执行时间
2013-02-22 10:43 789$t = new executeTime; //phpi ... -
PHP攻击网站防御代码-以及攻击代码反译
2013-02-21 14:23 809<?php //查询禁止IP $ip = ... -
PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置
2013-02-21 14:18 825ip库,免更新。 淘宝IP库: http://ip.taob ... -
针对PHP的网站主要存在下面几种攻击方式:
2013-02-21 11:51 808针对PHP的网站主要存在下面几种攻击方式: 1、命令注入(Co ... -
AMFPHP
2013-01-09 13:57 752下载地址:http://sourceforge.net/pro ... -
PHP网站安装程序的制作
2012-12-28 10:28 5301.制作PHP安装程序的原理 其实PHP程序的安装原理无非就是 ... -
php_xdebug.dll
2012-12-27 17:20 39511111111111111 -
网站统计中的数据收集原理及实现
2012-11-15 09:42 779http://www.admin10000.com/docum ... -
IP及IP段进行访问限制
2012-11-13 14:05 1169IP及IP段进行访问限制 转自:http://hudeyong ... -
Javascript+PHP实现在线拍照功能
2012-09-17 09:16 854转自:http://www.php100.com/html/w ... -
简单分页类
2012-09-04 13:47 663分页 转自网络 已测试 ... -
实现搜索框输入时 提示相近词的功能
2012-09-03 18:32 980下面是三个文件的代码 把sql文件导入到mysql数据库里 修 ...
相关推荐
看了这篇PHP中file_exists与is_file,is_dir的区别的说法基本明白,PHP的 file_exists = is_dir + is_file。 写程序验证一下: 分别执行1000次,记录所需时间。 文件存在(当前目录) 复制代码 代码如下: is_file:0....
看了这篇PHP中file_exists与is_file,is_dir的区别的说法基本明白,PHP的 file_exists = is_dir + is_file。 写程序验证一下: 分别执行1000次,记录所需时间。 文件存在(当前目录) is_file:0.4570ms file_exists:2....
很显然file_exists是受了asp的影响,因为asp不但有fileExists还有folderExists,driverExists,那么PHP中file_exists是什么意思呢? PHP的 file_exists = is_dir + is_file 它既可以判断文件是否存在,又可以判断目录...
if (is_file($filename)) { echo “$filename exists!\n”; } else { echo “$filename no exists!\n”; } sleep(10); if (is_file($filename)) { echo “$filename exists!\n”; } else ...
file_exists_glob/master/check_file_exists_globchmod +x check_file_exists_globmv check_file_exists_glob /usr/lib64/nagios/plugins/ 示例输出OK: File 'asdfg*' is absent, good.OK: File 'asdf*' is present,...
php中判断文件是否存在我们会使用file_exists函数或is_file函数,但在使用file_exists时如果你文件名或路径是中文在uft8编码文档时是无效。本文就来解决此问题,下面我们一起来看看。 定义和用法: file_exists() ...
stat(),lstat(),file_exists(),is_writable(),is_readable(),is_executable(),is_file(),is_dir(),is_link(),filectime(),fileatime(),filemtime(),fileinode(),filegroup(),fileowner(),...
file_exists('./'.$m_url)) { mkdir($m_url); } $img_path = empty($username)?$m_url:$m_url.$username.'/'; if($username){ if(!file_exists('./'.$img_path)){ mkdir($img_path); } }else...
from_file.isFile()) abort("can't copy directory: " + from_name); if (!from_file.canRead()) abort("source file is unreadable: " + from_name); // If the destination is a directory, use the source ...
Determine if a File Exists
一般来说PHP中常使用file_exists()判断某个文件或者文件夹是否存在,如果存在则返回true,否则返回false。但是该函数在网页使用UTF8编码的情况下,对于中文的文件名或者文件夹名不...echo file_exists($newfile); ?>
以下函数可用于替换php内置的is_writable函数复制代码 代码如下://可用于替换php内置的is_writable函数function isWritable($filename){... } if(file_exists($filename)){ //文件已经存在的话,使用读写方式打开
说明 bool file_exists ( string $filename ) 如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE。 其实于php教程 file_exists 函数与 file_exists语法我们早就讲过了,下面我们来看看一下关于它的...
bool file_exists ( string $filename ) 如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE。 在Windows上,使用/ /计算机名/共享/文件名或 计算机名共享文件名,以检查网络共享文件。 在 Windows ...
复制代码 代码如下:// local file that should be send to the client$local_file = ‘test-file.zip’; // filename that the user gets as...if(file_exists($local_file) && is_file($local_file)) { // s
复制代码 代码如下: function my_image_resize($src_file, $dst_file, $dst_width=32, $dst_height=32) { if($dst_width <... ” is not exists !”; exit(); } $type=exif_imagetype($src_file); $support_typ