* 获取目录下的所有文件
****************************/
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] 文件内容
* [$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$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 '<a href="' . $sitepath . $file . '">'.$file. '</a><br/>'
}
}
//关闭句柄
closedir($handle)
}
?>
代码中需要提示的是:
如果是运行于互联网上,需要考虑文件的访问安全性。
运行截图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)