技术开发 频道

PHP 开发经典教程(Part 5):操作文件

信息就是力量 

    PHP也提供了一系列允许你测试文件状态的函数,例如,发现文件是否存在、是否为空、是否可读或可写以及是二进制还是文本文件。在这些函数汇总中,最常用的操作符就是file_exists()函数,该函数它用于测试一特定文件是否存在。 

    下面是一个例子,它要求用户在Web表单中输入文件的路径,然后返回一条关于文件是否存在的消息:

<html> <head> </head> <body> <?php // if form has not yet been submitted // display input box if (!isset($_POST['file'])) { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Enter file path <input type="text" name="file"> </form> <?php } // else process form input else { // check if file exists // display appropriate message if (file_exists($_POST['file'])) { echo 'File exists!'; } else { echo 'File does not exist!'; } } ?> </body> </html>


    这里有很多这样的函数。下面是一个简短的列表,后面跟着一个例子,该例子在上一个例子的基础上为用户指定的文件提供更多的信息。 

•is_dir()- 返回一个指示指定路径是否是目录的Boolean值。 
•is_file- 返回一个指示指定文件是否是合格的文件的Boolean值。 
•is_link()-返回一个指示指定文件是否是符号链接的Boolean值。 
•is_executable()-返回一个指示指定文件是否可执行的Boolean值。 
•is_readable()-返回一个指示指定文件是否可读的Boolean值 
•is_writable()-返回一个指示指定文件是否可写的Boolean值 
•filesize()-得到文件的大小 
•filemtime()-得到文件的最后修改时间 
•filamtime()-得到文件的最后访问时间 
•fileowner()-得到文件的所有者 
•filegroup()-得到文件所属的组 
•fileperms()-得到文件的许可 
•filetype()-得到文件的类型 

    下面的脚本要求以文件名字作为输入然后使用上述函数返回该文件的信息

<html> <head> </head> <body> <?php /* if form has not yet been submitted, display input box */ if (!isset($_POST['file'])) { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Enter file path <input type="text" name="file"> </form> <?php } // else process form input else { echo 'File name: <b>'.$_POST['file'] .'</b><br />'; /* check if file exists and display appropriate message */ if (file_exists($_POST['file'])) { // print file size echo 'File size: '.filesize($_POST['file']).' bytes<br />'; // print file owner echo 'File owner: '.fileowner($_POST['file']).'<br />'; // print file group echo 'File group: '.filegroup($_POST['file']).'<br />'; // print file permissions echo 'File permissions: '.fileperms($_POST['file']).'<br />'; // print file type echo 'File type: '.filetype($_POST['file']).'<br />'; // print file last access time echo 'File last accessed on: '.date('Y-m-d', fileatime($_POST['file'])).'<br />'; // print file last modification time echo 'File last modified on: '.date('Y-m-d', filemtime($_POST['file'])).'<br />'; // is it a directory? if (is_dir($_POST['file'])) { echo 'File is a directory <br />'; } // is it a file? if (is_file($_POST['file'])) { echo 'File is a regular file <br />'; } // is it a link? if (is_link($_POST['file'])) { echo 'File is a symbolic link <br />'; } // is it executable? if (is_executable($_POST['file'])) { echo 'File is executable <br />'; } // is it readable? if (is_readable($_POST['file'])) { echo 'File is readable <br />'; } // is it writable? if (is_writable($_POST['file'])) { echo 'File is writable <br />'; } } else { echo 'File does not exist! <br />'; } } ?> </body> </html>

 

    下面是程序的输出可能看上去的样子:

File name: /usr/local/apache/logs/error_log File size: 53898 bytes File owner: 0 File group: 0 File permissions: 33188 File type: file File last accessed on: 2004-05-26 File last modified on: 2004-06-20 File is a regular file File is readable
0
相关文章