php读取目录文件
1. php如何获取目录下所有文件名
<?php
functionfilesinfo($path){
//检查路径合法性
if(!is_dir($path))returnfalse;//不合法
//用系统函数获得文件名数组
$files=scandir($path);
//定义静态变量记录调用次数
static$count=-1;
//遍历数组
foreach($filesas$file){
//如果是'.'或'..'文件,跳过当次循环
if($file=='.'||$file=='..')continue;
//将文件信息存入数组
$arr[]=iconv('gbk','utf-8',$file);
}
//每次调用,次数加1
$count+=1;
//根据调用次数返回第N个结果
return$arr[$count];
}
//第1次调用,./替换成你自己的目录路径
echofilesinfo('./').'</br>';
//第2次调用
echofilesinfo('./').'</br>';
//第3次调用
echofilesinfo('./').'</br>';
?>
2. 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);
}
}
?>
3. 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程序设计有所帮助。
4. 如何用php读取指定文件夹里所有文件并做成链接
<?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
*/
5. php中目录操作opendir()、readdir()及scandir()用法示例
本文实例讲述了php中目录操作opendir()、readdir()及scandir()用法。分享给大家供大家参考,具体如下:
opendir(path,context)若成功,则该函数返回一个目录流,否则返回
false
以及一个
error。可以通过在函数名前加上
“@”
来隐藏
error
的输出。
readdir()
函数返回由
opendir()
打开的目录句柄中的条目。若成功,则该函数返回一个文件名,否则返回
false。
scandir()
函数返回一个数组,其中包含指定路径中的文件和目录。
若成功,则返回一个数组,若失败,则返回
false。如果
directory
不是目录,则返回布尔值
false
付上2段搜到的读取目录的代码,亲测有效
显示目录中文件名
//
打开目录,然后读取其内容
if
(is_dir($dir)){
if
($dh
=
opendir($dir)){
while
(($file
=
readdir($dh))
!==
false){
echo
"filename:"
.
$file
.
"<br>";
}
closedir($dh);
}
}
拷贝一个目录的文件到另一个目录
_dir($from_dir,$to_dir);
function
_dir($from_dir,$to_dir){
if(!is_dir($from_dir)){
return
false;
}
echo
"\r\n
from:",$from_dir,'---to',$to_dir;
$from_files
=
scandir($from_dir);
//如果不存在目标目录,则尝试创建
if(!file_exists($to_dir)){
@mkdir($to_dir);
}
if(!empty($from_files)){
foreach
($from_files
as
$file){
if($file
==
'.'
||
$file
==
'..'
){
continue;
}
if(is_dir($from_dir.'/'.$file)){//如果是目录,则调用自身
_dir($from_dir.'/'.$file,$to_dir.'/'.$file);
}else{//直接到目标文件夹
($from_dir.'/'.$file,$to_dir.'/'.$file);
}
}
}
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP目录操作技巧汇总》、《php文件操作总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:使用PHP函数scandir排除特定目录PHP获取当前文件所在目录
getcwd()函数php文件夹与文件目录操作函数介绍php中判断文件空目录是否有读写权限的函数代码PHP解析目录路径的3个函数总结PHP使用glob函数遍历目录或文件夹的方法php
file_exists
检查文件或目录是否存在的函数PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结PHP删除非空目录的函数代码小结PHP目录函数实现创建、读取目录教程实例php使用scandir()函数扫描指定目录下所有文件示例
6. PHP怎么读取php所在文件夹下的图片和mp3文件,并且显示出来
显示本文件夹下的A.JPG的语句:
echo"<imgsrc='a.jpg'/>";
可能你已经明白了,其实PHP输出的是HTML代码,PHP无需具体读取文件内容,也无法在客户的浏览器上绘图,这一切只有交给浏览器去实现。
7. 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来写也是相同的。
8. PHP读取目录下所有文件
php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:
$dir="./目录名/";
$file=scandir($dir);
print_r($file);
9. 为什么用php读取目录下的文件名会出现几个小点,已确定此目录下就一个文件
. 代表当前目录, .. 代表上级目录。 这是两个特殊的文件夹。
10. 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 )
?>
(10)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/>"; //输出他