切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
递归创建多层目录[复制链接]
发表于 2012-12-15 18:53:56 | 显示全部楼层 |!read_mode!
<?php
        function create_dir($dir){
                $name=dirname($dir);
                if(!file_exists($name)){
                        create_dir($name);
                }
                mkdir($dir);
        }
        $dirname='./etc/password/pw';
        create_dir($dirname);
?>

递归是一个不断入栈 再出栈的算法   


拿上边的程序来解析一下  

我们要在当前目录下创建 /etc/password/pw  这个多层目录

我们采用的算法是 /etc/password/pw 首先入栈  
然后判断 是否存在 /etc/password/pw

不存在 则 继续调用create_dir()函数 那么
$name=dirname($dir) 执行后 $name=/etc/password

/etc/password  入栈  

再判断  $name=/etc

/etc 入栈  

再次判断  

$name=/

/  目录是存在的  

所以程序执行  mkdir()

那么 栈中保存的数据会依次出栈

首先出栈的是  /etc   创建  /etc  目录

然后出栈的是  /etc/passwor  创建/etc/password

最后出栈的是  /etc/password/pw  创建 /etc/password/pw
发表于 2012-12-15 19:53:59 | 显示全部楼层
不错  支持原创

代码区

GMT+8, 2020-12-2 04:19

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部