原文链接:https://www.toymoban.com/diary/php/29.html
问题描述
现需要找到指定目录下所有 php 文件,并将 php 文件按照原来路径放到其他目录。
<?php
function p($array = []) {
echo '<pre>';
print_r($array);
echo '</pre>';
exit;
}
/**
* 获取后缀
*/
function getExt($filename) {
$array = @explode('.',$filename);
$ext = @end($array);
return $ext;
}
/**
* 文件夹不存在则创建
*/
function mkdirs($dir, $mode = 0777) {
if (is_dir($dir) || @mkdir($dir, $mode)) return true;
if (!mkdirs(dirname($dir), $mode)) return false;
return @mkdir($dir, $mode);
}
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) && getExt($path) == 'php') {
// 新文件名称
$filename = str_replace(__DIR__, __DIR__.'/new', $path);
// 新文件文件夹位置
$path_parts = pathinfo($filename);
$new_path = $path_parts['dirname'];
// 目录不存在则创建
mkdirs($new_path);
//复制文件到指定目录
$res = @copy($path,$filename);
if ($res){
$data[] = 'true';
} else {
$data[] = 'false';
}
// 这是遍历的所有文件数组
//$data[] = $path;
}
return $data;
}
function getDir($dir){
$data = array();
$data = searchDir($dir,$data);
return $data;
}
$path = __DIR__;
p(getDir($path));
?>