<?php
//设定报错等级,如果是开源程序插件不需要设定
error_reporting(E_ERROR | E_PARSE);
//定义欲读取的目录路径,方便演示,本程序读取的是当前文件所在目录
$path = '.';
//获取文件列表数组
$files = ReadFolder($path);
//处理文件列表数组
foreach ($files as $value) {
//显示文件链接
echo '<a href="' . $value . '">' . $value . '</a>';
//为方便查看,输出一个 <br /> 换行符
echo '<br />';
}
/* 定义自定义函数 */
/**
* 获取文件列表
*
* @param string $dir 欲读取的目录路径
* @param boolean $mode 0:读取全部;1:仅读取文件;2:仅读取目录
* @return array
*/
B. php如何获取当前脚本所有加载的文件
get_included_files 返回被 include和require文件名的array
说明
get_included_files ( void ) : array
返回所有被 include、 include_once、 require 和 require_once 的文件名。
返回值
返回所有文件名称的 array。
脚本最初被称为”被包含的文件“,所以脚本自身也会和 include 系列函数引用的脚本列在一起,被多次 include 和 require 的文件在返回的 array 里只会列出一次。
(2)php获取文件列表扩展阅读:
程序示例
<?php
include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';
$included_files = get_included_files();
foreach ($included_files as $filename) {
echo "$filename ";
}
?>
C. php列出目录下所有文件(包括子目录)
<?php
/**
*Goofy2011-11-30
*getDir()去文件夹列表,getFile()去对应文件夹下面的文件列表,二者的区别在于判断有没有“.”后缀的文件,其他都一样
*/
//获取文件目录列表,该方法返回数组
functiongetDir($dir){
$dirArray[]=NULL;
if(false!=($handle=opendir($dir))){
$i=0;
while(false!==($file=readdir($handle))){
//去掉"“.”、“..”以及带“.xxx”后缀的文件
if($file!="."&&$file!=".."&&!strpos($file,".")){
$dirArray[$i]=$file;
$i++;
}
}
//关闭句柄
closedir($handle);
}
return$dirArray;
}
//获取文件列表
functiongetFile($dir){
$fileArray[]=NULL;
if(false!=($handle=opendir($dir))){
$i=0;
while(false!==($file=readdir($handle))){
//去掉"“.”、“..”以及带“.xxx”后缀的文件
if($file!="."&&$file!=".."&&strpos($file,".")){
$fileArray[$i]="./imageroot/current/".$file;
if($i==100){
break;
}
$i++;
}
}
//关闭句柄
closedir($handle);
}
return$fileArray;
}
//调用方法getDir("./dir")……
?>
D. PHP读取目录下所有文件内容并显示
<?php
function printFile($filepath)
{
//substr(string,start,length)函数返回字符串的一部分;start规定在字符串的何处开始 ;length规定要返回的字符串长度。默认是直到字符串的结尾。
//strripos(string,find,start)查找 "php" 在字符串中最后一次出现的位置; find为规定要查找的字符;start可选。规定开始搜索的位置
//读取文件后缀名
//$filetype = substr ( $filename, strripos ( $filename, "." ) + 1 );
//判断是不是以txt结尾并且是文件
#if ($filetype == "txt" && is_file ( $filepath . "/" . $filename ))
if ( is_file ( $filepath))
{
$filename=iconv("gb2312","utf-8",$filepath);
echo $filename."内容如下:"."<br/>";
$fp = fopen ( $filepath, "r" );//打开文件
#while (! feof ( $f )) //一直输出直到文件结尾
$i = 1;
while ($i < 10)
{
$line = fgets ( $fp );
echo $line."<br/>";
$i = $i +1;
}
fclose($fp);
}
}
(此处空一行)
function readFileRecursive($filepath)
{
if (is_dir ( $filepath )) //判断是不是目录
{
$dirhandle = opendir ( $filepath );//打开文件夹的句柄
if ($dirhandle)
{
//判断是不是有子文件或者文件夹
while ( ($filename = readdir ( $dirhandle ))!= false )
{
if ($filename == "." or $filename == "..")
{
//echo "目录为“.”或“..”"."<br/>";
continue;
}
//判断是否为目录,如果为目录递归调用函数,否则直接读取打印文件
if(is_dir ($filepath . "/" . $filename ))
{
readFileRecursive($filepath . "/" . $filename);
}
else
{
//打印文件
printFile($filepath . "/" . $filename);
echo "<br/>";
}
}
closedir ( $dirhandle );
}
}
else
{
printFile($filepath . "/" . $filename);
return;
}
}
(此处空一行)
header("content-type:text/html;charset=utf-8");
#echo "Hello World"."<br/>";
$filepath = "C:/phpStudy/PHPTutorial/WWW/test/results"; //想要读取的目录
readFileRecursive($filepath )
?>
php还可以读取文件夹下所有图片,方法如下
hostdir=dirname(__FILE__).'/data/upload/admin/20170517/'; //要读取的文件夹
(此处空一行)
$url = '/data/upload/admin/20170517/'; //图片所存在的目录
(此处空一行)
$filesnames = scandir($hostdir); //得到所有的文件
(此处空一行)
// print_r($filesnames);exit;
//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames
(此处空一行)
$www = 'http://www.***.com/'; //域名
(此处空一行)
foreach ($filesnames as $name) {
$aurl= "<img width='100' height='100' src='".$www.$url.$name."' alt = '".$name."'>"; //图片
echo $aurl . "<br/>"; //输出他
E. PHP如何读出当前目录下所有文件
一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:
复制代码 代码如下:$dir="./caxa/";
$file=scandir($dir);
print_r($file);
稍微复杂点的,来自于php手册:
复制代码 代码如下:$dir = "/etc/php5/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
} closedir($dh);
}
}
这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用&$data的地方,如下所示:
复制代码 代码如下:function searchDir($path,&$data){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!='.'&& $file!='..'){
searchDir($path.'/'.$file,$data);
}
}
$dp->close();
}
if(is_file($path)){
$data[]=$path;
}
}
function getDir($dir){
$data=array();
searchDir($dir,$data);
return $data;
}
print_r(getDir('.'));
希望本文所述对大家的PHP程序设计有所帮助。
F. php中怎么从路径中取出文件名
1、basename("/mnt/img/image01.jpg")函数:得到文件名;输出结果为:image01.jpg.
使用 basename($uriString) 我们可以得到一个包含扩展名的文件名;
如果不需要扩展名,也可以使用 basename($uriString, $extString) 过滤扩展名,仅仅返回文件名。
2、echo __FILE__;得到当前请求文件的完整路径,输出格式如:/mnt/hgfs/ictsapce/test/index.php
3、dirname() 函数返回路径中的目录部分。
如:
echo dirname("/testweb/home.php");
输出:/testweb
G. php如何读取文件列表并生成一个静态页面
<html>
<head>
</head>
<body>
<?php
if($dir=opendir("file")){
while(false!==$item=readdir($dir)){
if($item!='.'&&$item!='..'){
echo"<ahref='file/".$item."'>".$item."</a><br/>";
}
}
}
?>
</body>
</html>
H. PHP如何遍历指定文件夹,获取所有文件列表并生成下载链接
试编写代码如下:
<?php
$dir="D:/WWW/ftp";//指定的路径
$sitepath='http://localhost/ftp/';
//遍历文件夹下所有文件
if(false!=($handle=opendir($dir))){
echo"$dir目录下的文件列表:<BR/>";
$i=0;
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."&&!is_dir($dir.'/'.$file)){
echo'<ahref="'.$sitepath.$file.'">'.$file.'</a><br/>';
}
}
//关闭句柄
closedir($handle);
}
?>
代码中需要提示的是:
如果是运行于互联网上,需要考虑文件的访问安全性。
运行截图: