當前位置:首頁 » 文件管理 » php循環文件夾

php循環文件夾

發布時間: 2022-10-11 12:21:40

A. php 遍歷文件夾文件問題

<?php
//腳本根目錄
define
(
'S_ROOT',
dirname
(
__FILE__
)
.
DIRECTORY_SEPARATOR
);
//遞歸查找搜索文件
function
glob_recursive($pattern,
$flags
=
0)
{

$files
=
glob
(
$pattern,
$flags
);

foreach
(
glob
(
dirname
(
$pattern
)
.
'/*',
GLOB_ONLYDIR
|
GLOB_NOSORT
)
as
$dir
)
{

$files
=
array_merge
(
$files,
glob_recursive
(
$dir
.
'/'
.
basename
(
$pattern
),
$flags
)
);

}

return
$files;
}
//如果搜索所有文件可用
S_ROOT.'image/'."*.*"
//如果只是某一類文件可以
S_ROOT.'image/'."*.gif"
$filelist
=
glob_recursive(S_ROOT.'image/'."*.gif");
foreach
($filelist
as
$file)
{

echo
'目錄
'.dirname($file).'
路徑
'.
$file.'<br
/>';
}
?><p>執行腳本結果類似下圖</p>
<p></p>

B. PHP 循環取文件夾裡面文件的名稱 然後列表

示例代碼:

<?php
functiongetFileNames($dir){

//檢查是否為目錄
if(is_dir($dir)){

//打開一個目錄句柄
if($dh=opendir($dir)){

//判斷打開的目錄句柄中的條目
while(($file=readdir($dh))!==false){

//判斷是否為目錄,進入子目錄讀取
if((is_dir($dir."/".$file))&&$file!="."&&$file!=".."){
echo"<b><fontcolor='red'>文件夾名:</font></b>",$file,"<br><hr>";
getFileNames($dir."/".$file."/");
}else{
if($file!="."&&$file!=".."){
echo$file."<br>";
}
}
}
//關閉由opendir()函數打開的目錄句柄。
closedir($dh);
}
}
}
//測試示例
getFileNames("D:desc");
?>

運行結果:

C. PHP循環輸出指定目錄下的所有文件和文件夾路徑例子(簡單實用)

如果做一個在線的文件管理系統的話,那麼首先必須知道怎麼讀取目錄和文件,其實這個功能幾行代碼就可以實現了。
輸出效果:
實現代碼:
復制代碼
代碼如下:
<?php
$dir
=
"D:/";
//要獲取的目錄
echo
"**********
獲取目錄下所有文件和文件夾
***********<hr/>";
//先判斷指定的路徑是不是一個文件夾
if
(is_dir($dir)){
if
($dh
=
opendir($dir)){
while
(($file
=
readdir($dh))!=
false){
//文件名的全路徑
包含文件名
$filePath
=
$dir.$file;
//獲取文件修改時間
$fmt
=
filemtime($filePath);
echo
"<span
style='color:#666'>(".date("Y-m-d
H:i:s",$fmt).")</span>
".$filePath."<br/>";
}
closedir($dh);
}
}
?>
這只是最基礎的效果,弄懂了,想做出其他的需求也很簡單了。

D. 求PHP遍歷文件夾代碼

1樓的弱爆了..
現在都玩php5了..用scandir函數最方便.

<?php
$dir = "."; //當前目錄
list_file($dir);

function list_file($dir){
$list = scandir($dir); // 得到該文件下的所有文件和文件夾
foreach($list as $file){//遍歷
$file_location=$dir."/".$file;//生成路徑
if(is_dir($file_location) && $file!="." &&$file!=".."){ //判斷是不是文件夾
echo "------------------------sign in $file_location------------------";
list_file($file_location); //繼續遍歷
}
echo "<br/>";
}
}
?>

E. PHP遍歷文件及文件夾

<?php
$dir = 'F:\\game';

function read_dir_all($dir) {
$ret = array('dirs'=>array(), 'files'=>array());
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file != '.' && $file !== '..') {
$cur_path = $dir . DIRECTORY_SEPARATOR . $file;
if(is_dir($cur_path)) {
$ret['dirs'][$cur_path] = read_dir_all($cur_path);
} else {
$ret['files'][] = $cur_path;
}
}
}
closedir($handle);
}
return $ret;
}

$p = read_dir_all($dir);
echo '<pre>';
var_mp($p);
echo '</pre>';
?>

F. php 循環遍歷文件夾下面的所有目錄及文件並且每個文件都寫入一句話

/****************************
*獲取目錄下的所有文件
*[$dir]文件夾路徑
****************************/
functiondeepScanDir($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);
}
returnarray(
'dir'=>$dirArr,
'file'=>$fileArr
);
}
/****************************
*將內容寫入文件
*[$filename]文件路徑
*[$contents]文件內容
*[$type]讀寫類型
****************************/
functionwriteFileContents($filename,$contents,$type='a'){
if(!($fd=fopen($filename,$type)))
returnFALSE;

if(!fwrite($fd,$contents." ")){
fclose($fd);
returnFALSE;
}

fclose($fd);
returntrue;
}
#示例:
$dir="/usr/local/php/test/";
$dirFiles=deepScanDir($dir);
if(!empty($dirFiles['file'])){
foreach($dirFiles['file']as$file){
writeFileContents($file,"Hello",$type='a+');
}
}

G. php 遍歷文件夾文件問題

<?php
//腳本根目錄
define ( 'S_ROOT', dirname ( __FILE__ ) . DIRECTORY_SEPARATOR );
//遞歸查找搜索文件
function glob_recursive($pattern, $flags = 0) {
$files = glob ( $pattern, $flags );

foreach ( glob ( dirname ( $pattern ) . '/*', GLOB_ONLYDIR | GLOB_NOSORT ) as $dir ) {
$files = array_merge ( $files, glob_recursive ( $dir . '/' . basename ( $pattern ), $flags ) );
}

return $files;
}
//如果搜索所有文件可用 S_ROOT.'image/'."*.*"
//如果只是某一類文件可以 S_ROOT.'image/'."*.gif"
$filelist = glob_recursive(S_ROOT.'image/'."*.gif");
foreach ($filelist as $file) {
echo '目錄 '.dirname($file).' 路徑 '. $file.'<br />'
}
?>

執行腳本結果類似下圖

H. php 怎麼循環輸出指定文件夾中指定前綴名的文件呢

用php函數strpos判斷是否包含了

if(strpos('A',$filename)===0)
{
//以A開頭的
}
else
{
}

I. 幾種php文件夾遍歷的方法

function dirTree(){
if(!is_dir($path)) return []; $files = []; $dir = opendir($path); while($file = readdir($dir)) { if($file == '.' || $file == '..') continue; $new_path = trim($path, '/').'/'.trim($file, '/'); $files[] = $new_path; if(is_dir($new_path)){ $files = array_merge($files, $this->ergodicDir2($new_path));
}
}
closedir($dir); return $files;
}

J. php 遍歷文件夾

你的代碼其實只有兩個地方有小錯誤,一是少了一個),二是使用\分隔文件夾,我粘貼一下我調試通過的代碼:

<?php
function list_filename($dir)
{
$dh=opendir($dir);
while($filename=readdir($dh))
if ($filename!="." && $filename!="..")
{
if (is_dir($dir.'/'.$filename)) list_filename($dir.'/'.$filename);
else echo $dir.'/'.$filename."\n";
}
closedir($dh);
}
$directory="d:/temp/game";
list_filename($directory);
?>

代碼就是用你的修改了,只是刪除了注釋和調試語句。

熱點內容
神武手游什麼隊伍配置最好 發布:2024-10-08 04:19:05 瀏覽:420
seer資料庫 發布:2024-10-08 04:18:47 瀏覽:477
l3緩存分數下降 發布:2024-10-08 04:10:36 瀏覽:433
linux游戲伺服器 發布:2024-10-08 04:04:17 瀏覽:74
有什麼推薦的網游低配置 發布:2024-10-08 03:17:03 瀏覽:36
淘優惠源碼 發布:2024-10-08 03:17:02 瀏覽:780
linux系統製作 發布:2024-10-08 02:47:15 瀏覽:252
4s緩存怎麼清理 發布:2024-10-08 02:46:42 瀏覽:429
蘋果11面容存儲微信密碼 發布:2024-10-08 02:35:58 瀏覽:764
魔獸243腳本 發布:2024-10-08 02:35:12 瀏覽:640