$dir="./目录名/"
$file=scandir($dir)
print_r($file)
<?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/htmlcharset=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/>"//输出他
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 ($filens as $value) {
echo $value."<br />"
}
?>
上面的代码显示c:\users文件夹里面的所有的文件和文件夹,忽略.和..两个特殊含义的文件夹,程序把所有文件和文件夹名称扫描保存到数组里面,然后显示。
如果你需要对文件进行过滤,例如只处理*.xls文件,可以在过滤.和..的地方添加代码。例如:
if (substr($filename,-4)=='.xls'){
当你理解了上面的代码之后,你就能编写扫描子文件夹、以及子 文件夹里面文件的方法了。基本思路是使用递归,下面我给出一个简单的例子:
function get_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
}
}
function get_filenamesbydir($dir){
$files = array()
get_allfiles($dir,$files)
return $files
}
$filenames = get_filenamesbydir("c:/users/")
//打印所有文件名,包括路径
foreach ($filenames as $value) {
echo $value."<br />"
}
这个例子使用dir类来编写,实际上用opendir、readdir、closedir来写也是相同的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)