zoukankan      html  css  js  c++  java
  • php无限遍历目录-修正版

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

    使用的函数有:

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

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

    opendir() 打开目录。

    readdir()读取目录。

    getcwd()。获取当前目录。

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

    下面是代码:

    
    
    
    
    <?php
    if(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 传值 中如果有+号  在获取时会变成空格  使用替换函数解决。

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

  • 相关阅读:
    Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告)
    无向图求点割集的算法
    hdu 2121无根最小树形图要建一个虚拟节点
    hdu 1576扩展欧几里得算法
    欧几里德算法的扩展-求解不定方程
    hdu 3072 强连通+缩点+最小树形图思想
    1352 集合计数 扩展欧几里德算法
    1247 可能的路径 逆向思维
    Atcoder B
    C. Timofey and a tree 观察题 + dfs模拟
  • 原文地址:https://www.cnblogs.com/phpshen/p/3558348.html
Copyright © 2011-2022 走看看