当前位置:首页 » 编程语言 » php读取目录下文件

php读取目录下文件

发布时间: 2023-12-11 10:47:05

php如何读取某目录下的所有同类型文件

PHP使用函数opendir、readdir、closedir来实现文件夹的操作,下面以一个最基本的例子来作为入门介绍:

<?php
//获取某目录下所有文件、目录名(不包括子目录下文件、目录名)
$dir='C:/Users/';
$handler=opendir($dir);
while(($filename=readdir($handler))!==false){//务必使用!==,防止目录下出现类似文件名“0”等情况
if($filename!="."&&$filename!=".."){
$files[]=$filename;
}
}
}
closedir($handler);

//打印所有文件名
foreach($filensas$value){
echo$value."<br/>";
}
?>

上面的代码显示c:users文件夹里面的所有的文件和文件夹,忽略.和..两个特殊含义的文件夹,程序把所有文件和文件夹名称扫描保存到数组里面,然后显示。


如果你需要对文件进行过滤,例如只处理*.xls文件,可以在过滤.和..的地方添加代码。例如:

if (substr($filename,-4)=='.xls'){


当你理解了上面的代码之后,你就能编写扫描子文件夹、以及子 文件夹里面文件的方法了。基本思路是使用递归,下面我给出一个简单的例子:

functionget_allfiles($path,&$files){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!="."&&$file!=".."){
get_allfiles($path."/".$file,$files);
}
}
$dp->close();
}
if(is_file($path)){
$files[]=$path;
}
}

functionget_filenamesbydir($dir){
$files=array();
get_allfiles($dir,$files);
return$files;
}

$filenames=get_filenamesbydir("c:/users/");
//打印所有文件名,包括路径
foreach($filenamesas$value){
echo$value."<br/>";
}

这个例子使用dir类来编写,实际上用opendir、readdir、closedir来写也是相同的。

㈡ php读取当前目录内的html格式文件

<?php
foreach(glob(dirname(__FILE__)."/*.html")as$filename){
$url="http://127.0.0.1/520/".$name;

$aurl="<ahref="".$url."">".$url."</a>";

echo$aurl."<br/>";
}
?>

㈢ 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);
}

?>


代码中需要提示的是:


如果是运行于互联网上,需要考虑文件的访问安全性。


运行截图:


㈣ 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 )

?>

(4)php读取目录下文件扩展阅读:

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/>"; //输出他

㈤ PHP如何读出当前目录下所有文件

一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:x0dx0a复制代码 代码如下:$dir="./caxa/";x0dx0a$file=scandir($dir);x0dx0aprint_r($file);x0dx0a稍微复杂点的,来自于php手册:x0dx0a复制代码 代码如下:$dir = "/etc/php5/";x0dx0a// Open a known directory, and proceed to read its contentsx0dx0aif (is_dir($dir)) {x0dx0aif ($dh = opendir($dir)) {x0dx0awhile (($file = readdir($dh)) !== false) {x0dx0aecho "filename: $file : filetype: " . filetype($dir . $file) . "\n";x0dx0a} closedir($dh);x0dx0a}x0dx0a}x0dx0a这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用&$data的地方,如下所示:x0dx0a复制代码 代码如下:function searchDir($path,&$data){x0dx0aif(is_dir($path)){x0dx0a$dp=dir($path);x0dx0awhile($file=$dp->read()){x0dx0aif($file!='.'&& $file!='..'){x0dx0asearchDir($path.'/'.$file,$data);x0dx0a}x0dx0a}x0dx0a$dp->close();x0dx0a}x0dx0aif(is_file($path)){x0dx0a$data[]=$path;x0dx0a}x0dx0a}x0dx0afunction getDir($dir){x0dx0a$data=array();x0dx0asearchDir($dir,$data);x0dx0areturn $data;x0dx0a}x0dx0aprint_r(getDir('.'));x0dx0a希望本文所述对大家的PHP程序设计有所帮助。

㈥ php读取文件夹并输出

<?php
$dir = "./images/"; //要获取的目录
echo "********** 获取目录下所有文件和文件夹 ***********<hr/>";
//先判断指定的路径是不是一个文件夹
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh))!= false){
//文件名的全路径 包含文件名
$filePath = $dir.$file;
echo "<img src='".$filePath."'/>";
}
closedir($dh);
}
}
?>

㈦ 如何用php读取指定文件夹里所有文件并做成链接

<?php

//设定报错等级,如果是开源程序插件不需要设定

error_reporting(E_ERROR|E_PARSE);

//定义欲读取的目录路径,方便演示,本程序读取的是当前文件所在目录

$path='.';

//获取文件列表数组

$files=ReadFolder($path);

//处理文件列表数组

foreach($filesas$value){

//显示文件链接

echo'<ahref="'.$value.'">'.$value.'</a>';

//为方便查看,输出一个<br/>换行符

echo'<br/>';

}

/*定义自定义函数*/

/**

*获取文件列表

*

*@paramstring $dir 欲读取的目录路径

*@paramboolean$mode0:读取全部;1:仅读取文件;2:仅读取目录

*@returnarray

*/

functionReadFolder($dir,$mode=0){

//如果打开目录句柄失败,则输出空数组

if(!$handle=@opendir($dir))returnarray();

//定义文件列表数组

$files=array();

//遍历目录句柄中的条目

while(false!==($file=@readdir($handle))){

//跳过本目录以及上级目录

if('.'===$file||'..'===$file)continue;

//是否仅读取目录

if($mode===2){

if(isDir($dir.'/'.$file))$files[]=$file;

//是否仅读取文件

}elseif($mode===1){

if(isFile($dir.'/'.$file))$files[]=$file;

//读取全部

}else{

$files[]=$file;

}

}

//关闭打开的目录句柄

@closedir($handle);

//输出文件列表数组

return$files;

}

/**

*判断输入是否为目录

*

*@paramstring$dir

*@returnboolean

*/

functionisDir($dir){

return$dir?is_dir($dir):false;

}

/**

*判断输入是否为文件

*

*@paramstring$file

*@returnboolean

*/

functionisFile($file){

return$file?is_file($file):false;

}

?>

㈧ PHP怎么读取php所在文件夹下的图片和mp3文件,并且显示出来

显示本文件夹下的A.JPG的语句:

echo"<imgsrc='a.jpg'/>";

可能你已经明白了,其实PHP输出的是HTML代码,PHP无需具体读取文件内容,也无法在客户的浏览器上绘图,这一切只有交给浏览器去实现。

热点内容
linuxio文件 发布:2025-01-24 13:40:21 浏览:437
在excel设密码如何取消 发布:2025-01-24 13:38:54 浏览:482
电脑装存储时不能开机 发布:2025-01-24 13:38:52 浏览:284
2000人同时在线的小程序需要什么服务器 发布:2025-01-24 13:37:17 浏览:852
怎么搭建linux服务器配置 发布:2025-01-24 13:37:16 浏览:112
安卓版什么时候上线麻将模式 发布:2025-01-24 13:32:48 浏览:965
算法实验分析 发布:2025-01-24 13:20:25 浏览:137
安卓和ios步数哪个准确 发布:2025-01-24 13:12:13 浏览:290
怎么给电脑换配置 发布:2025-01-24 13:04:04 浏览:922
如何修改服务密码10086 发布:2025-01-24 12:44:27 浏览:515