php文件遍历类的实现,php遍历文件夹

发布时间:2023-01-07

本文目录一览:

  1. php开发中如何实现无限遍历目录
  2. php数组遍历类与用法示例
  3. php写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

php开发中如何实现无限遍历目录

$tree = '';
do {
    $tree .= '/*';
    $files = glob(__DIR__ . $tree);
    if ($files) {
        foreach ($files as $file) {
            if (
                pathinfo($file, PATHINFO_EXTENSION) == 'php'
                and ! in_array(substr(pathinfo($file, PATHINFO_BASENAME), 0, 1), ['.', '_'])
            ) {
                require $file;
            }
        }
        unset($file);
    }
} while (isset($files) and $files);
unset($tree, $files);

这是我随便写的一个示例,无限遍历当前目录的,你可以参考一下。

php数组遍历类与用法示例

本文实例讲述了php数组遍历类与用法。分享给大家供大家参考,具体如下:

class scanArray {
    public $arr;
    public $where;
    private $str;
    public function scan($arr, $where = "array") {
        $this->arr = $arr;
        $this->where = $where;
        foreach ($this->arr as $k => $v) {
            if (is_array($v)) {
                $this->where = ($this->where) . "[{$k}]";
                $this->scan($v, $this->where);
            } else {
                $this->str .= $this->where . "[{$k}]=" . $v . '<br/>';
            }
        }
        return $this->str;
    }
    function __destruct() {
        unset($this->arr);
        unset($this->where);
    }
}
$a = array('g' => 'a', 'vv' => array("b" => "b", "l" => "c", "xx" => array("e", "g")));
$ah = new scanArray();
$b = $ah->scan($a);
echo $b;

运行结果:

array[g]=a
array[vv][b]=b
array[vv][l]=c
array[vv][xx][0]=e
array[vv][xx][1]=g

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《PHP常用遍历算法与技巧总结》 希望本文所述对大家PHP程序设计有所帮助。 您可能感兴趣的文章:
PHP遍历数组的方法汇总PHP数组遍历方法大全(foreach,list,each)PHP数组遍历foreach语法结构及实例PHP中多维数组的foreach遍历示例php实现遍历多维数组的方法PHP中使用foreach()遍历二维数组的简单实例PHP遍历数组的三种方法及效率对比分析PHP实现的操作数组类库定义与用法示例PHP数组操作类实例PHP数组生成XML格式数据的封装类实例

php写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

最近刚写的,可以遍历指定目录下的所有文件、文件夹、特定后缀的文件:

/**
 * 遍历目录
 * @param string $dir 绝对/相对路径
 * @param string $filter 默认*返回所有文件及文件夹,*.php仅返回php文件,如果$patten为GLOB_BRACE可实现多文件筛选,如*.{php,html},返回php和html文件
 * @param const $patten 默认GLOB_BRACE,可选:GLOB_ONLYDIR,更多参数请参考手册
 * @param string/bool $nocache 防止本次调用的结果缓存上次的结果,如果一个脚本仅调用一次本函数,则不用管,否则得设个值
 * @return array
 */
function globdir($dir, $filter = '*', $patten = GLOB_BRACE, $nocache = null) {
    static $file_arr = array();
    isset($nocache) && $file_arr = array();
    if (!is_dir($dir)) return;
    if ($patten == GLOB_ONLYDIR) {
        $code = 'if (is_dir($file)) {$file_arr[] = $file;globdir($file, "*", GLOB_ONLYDIR);}';
    } else {
        $code = 'is_file($file) ? $file_arr[] = $file : globdir($file,"' . $filter . '",' . $patten . ');';
    }
    array_walk(glob("{$dir}/{$filter}", $patten), create_function('$file, $k, $file_arr', $code), $file_arr);
    if ($filter != '*') {
        array_walk(glob("{$dir}/*", GLOB_ONLYDIR), create_function('$dir,$k,$param', 'list($filter, $patten) = explode("|", $param);globdir($dir, $filter, $patten);'), "{$filter}|{$patten}");
    }
    return $file_arr;
}