php循环套读取目录数据 php循环读取文件内容

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=https://www.04ip.com/post/array();
searchDir($dir,$data);
return$data;
}
print_r(getDir('.'));
希望本文所述对大家的PHP程序设计有所帮助 。
php 循环遍历文件夹下面的所有目录及文件并且每个文件都写入一句话/****************************
* 获取目录下的所有文件
* [$dir] 文件夹路径
****************************/
function deepScanDir($dir) {
$fileArr = array ();
$dirArr = array ();
$dir = rtrim($dir, '//');
if (is_dir($dir)) {
$dirHandle = opendir($dir);
while (false !== ($fileName = readdir($dirHandle))) {
$subFile = $dir . DIRECTORY_SEPARATOR . $fileName;
if (is_file($subFile)) {
$fileArr[] = $subFile;
}
elseif (is_dir($subFile)str_replace('.', '', $fileName) != '') {
$dirArr[] = $subFile;
$arr = deepScanDir($subFile);
$dirArr = array_merge($dirArr, $arr['dir']);
$fileArr = array_merge($fileArr, $arr['file']);
}
}
closedir($dirHandle);
}
return array (
'dir' = $dirArr,
'file' = $fileArr
);
}
/****************************
* 将内容写入文件
* [$filename] 文件路径
* [$contents]文件内容
【php循环套读取目录数据 php循环读取文件内容】* [$type]读写类型
****************************/
function writeFileContents($filename, $contents, $type='a') {
if (!($fd = fopen($filename, $type)))
return FALSE;
if (!fwrite($fd, $contents."\n")) {
fclose($fd);
return FALSE;
}
fclose($fd);
return true;
}
#示例:
$dir = "/usr/local/php/test/";
$dirFiles = deepScanDir($dir);
if(!empty($dirFiles['file'])){
foreach($dirFiles['file'] as $file){
writeFileContents($file, "Hello", $type='a ');
}
}
PHP 循环取文件夹里面文件的名称 然后列表示例代码:
?php
function getFileNames($dir){
//检查是否为目录
if(is_dir($dir)){
//打开一个目录句柄
if ($dh = opendir($dir)){
//判断打开的目录句柄中的条目
while (($file = readdir($dh)) !== false){
//判断是否为目录,进入子目录读取
if((is_dir($dir."/".$file))$file!="."$file!=".."){
echo "bfont color='red'文件夹名:/font/b",$file,"brhr";
getFileNames($dir."/".$file."/");
}else{
if($file!="."$file!=".."){
echo $file."br";
}
}
}
//关闭由 opendir() 函数打开的目录句柄 。
closedir($dh);
}
}
}
//测试示例
getFileNames("D:\desc");
?
运行结果:
关于php循环套读取目录数据和php循环读取文件内容的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读