·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> php无限遍历目录-修正版

php无限遍历目录-修正版

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php无限遍历目录-修正版

最近在能php目录操作,搞了一个目录无限遍历:

使用的函数有:

isset()判断某个变量是否定义

chdir() 将当前目录改变为指定的目录。

opendir() 打开目录。

readdir()读取目录。

getcwd()。获取当前目录。

还用到了for if GET传值 大概就这些东东:

下面是代码:

<?phpif(isset($_GET['id']))//判断是否传值{    $s=str_replace(' ','+',$_GET['id']);    $s=base64_decode($s);//接受传递的值 值一般是要打开的目录的绝对路劲        chdir($s);//切换到要打开的目录    }$a=opendir('.');//打开当前目录while(false!==($c=readdir($a)))//循环遍历目录内容的文件名{                if(is_dir($c))//判断是目录还是文件       {           if($c=='.')           {               }               else               {           if($c=='..')           {           $w=base64_encode(substr(getcwd(),0,strrpos(getcwd(),'\\')));//当前路径加上目录名 就是目录的绝对路径           echo "上一级"."<a href='6.php?id=$w'>打开</a><br />";//当点击打开时将要打开的绝对路径传递出去  用chdir 切换到要打开的目录下           }else           {               $w=base64_encode(getcwd().'\\'.$c);//当前路径加上目录名 就是目录的绝对路径           echo "$c"."<a href='6.php?id=$w'>打开</a><br />";//当点击打开时将要打开的绝对路径传递出去  用chdir 切换到要打开的目录下               }               }           }           else           {               echo "$c 不是目录<br />";               }}?>

比上一次代码 修正了 。 和 。。 两个系统目录问题 修正了 get传值 中午错误问题 修正方法 。 和。。 通过 if 判断修正 get 传值使用的是base64_encode base64_decode 编码和解码 在修改时 发现 get 传值 中如果有+号 在获取时会变成空格 使用替换函数解决。

大家如果有什么建议可以提出来!!谢谢!!