Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php mcDropdown实现文件路径可在下拉框选择的方法

php mcDropdown实现文件路径可在下拉框选择的方法

WBOY
WBOYasal
2016-07-25 09:00:051471semak imbas
  1. //获取指定目录下的文件列表
  2. //$path 指定的目录,默认为当前目录
  3. //$ifchild 是否显示子目录文件列表,默认不显示
  4. //$curpath 显示当前的路径,默认为从当前目录开始;这个主要是为了显示确定href路径
  5. function openpath($path=".",$ifchild=false,$curpath=".")
  6. {
  7. $handle = opendir($path);
  8. if($handle)
  9. {
  10. while(false !== ($file = readdir($handle)))
  11. {
  12. if ($file != "." && $file != "..")
  13. {
  14. $fullPath = $path.DIRECTORY_SEPARATOR.$file;
  15. if(is_dir($fullPath))//如果是目录文件
  16. {
  17. if($ifchild)//如果设置了显示子目录
  18. {
  19. //递归
  20. openpath($path.DIRECTORY_SEPARATOR.$file,$ifchild,$curpath.DIRECTORY_SEPARATOR.$file);
  21. }
  22. else
  23. {
  24. echo "
  25. $file
  26. \n";
  27. }
  28. }
  29. else if($file != basename(__FILE__))//排除当前执行脚本
  30. {
  31. echo "
  32. $file
  33. \n";
  34. }
  35. else
  36. {
  37. echo $file;
  38. }
  39. }
  40. }
  41. }
  42. closedir($handle);
  43. }
复制代码

因为要提供路径选择的功能,要是有一个下拉菜单,里面有待选路径的显示就好了。

2、取得当前文件下所有子文件路径的代码:

  1. /*获取指定目录文件路径列表
  2. *$path 指定的目录,默认为当前目录
  3. *$ifchild 是否获取子目录文件列表,默认不获取
  4. *$curpath 显示当前的路径,默认为从当前目录开始
  5. *&$pach_html_srt 传递一个外部变量的引用进来,因为此方法有可能被递归调用,所以以这样的方式来保存
  6. * 一些信息,也可以用全局变量来实现,在函数内部变量改变也影响到外部。
  7. *&$path_ref_count 原理同上,一个计数标志,如果递归,计数器从上一次保存的值开始自增
  8. */
  9. function openpath($path=".",$ifchild=false,&$path_html_str,&$path_ref_count)
  10. {
  11. $handle = opendir($path);
  12. if($handle)
  13. {
  14. while(false !== ($file = readdir($handle)))
  15. {
  16. if ($file != "." && $file != "..")
  17. {
  18. $fullPath = $path.DIRECTORY_SEPARATOR.$file;
  19. if(is_dir($fullPath))//如果文件是目录
  20. {
  21. $path_html_str.='
  22. ';
  23. $path_html_str.=$file.'
      ';
    • if($ifchild)
    • {
    • //递归
    • openpath($path.DIRECTORY_SEPARATOR.$file,$ifchild,&$path_html_str,&$path_ref_count);
    • }
    • $path_html_str.='
  24. ';
  25. }
  26. }
  27. }
  28. }
  29. closedir($handle);
  30. }
复制代码

有了上面的方法,就可以在前台用jquery mcDropdown插件来让用户可以通过下拉菜单选择想进入的目录,所以需要封装成指定格式:

  1. $path_ref_count = 1;
  2. $path_html_str ='';
  3. openpath(".",true,&$path_html_str,&$path_ref_count);
  4. $path_html_str = '
      '.$path_html_str.'
    ';
  5. $path_html_str = str_replace ( "
      ", '', $path_html_str );
    • ?>
    复制代码

    这样把$path_html_str传到前台,显示出来就是一个符合mcDropdown要求的无序列表,就可以显示相应的待选列表了。

    完整代码如下: 1、test.html

    1. jquery mcDropdown实现文件路径可在下拉框选择的方法_bbs.it-home.org
    2. Please select a category:
    3. #categorymenu#
    复制代码

    2、test.php

    1. //目录信息处理
    2. $path_ref_count = 1;
    3. $path_html_str ='';
    4. openpath(".",true,&$path_html_str,&$path_ref_count);
    5. $path_html_str = '
        '.$path_html_str.'
      ';
    6. $path_html_str = str_replace ( "
        ", '', $path_html_str );
      • //var_dump($path_info);
      • //var_dump($path_html_str);
      • $str_buffer = file_get_contents (dirname(__FILE__).DIRECTORY_SEPARATOR.'test.html');
      • $str_buffer = str_replace ( "#categorymenu#", $path_html_str, $str_buffer );
      • $str_buffer = str_replace ( "#delim#", DIRECTORY_SEPARATOR, $str_buffer );
      • echo $str_buffer;
      • /*获取指定目录文件路径列表
      • *$path 指定的目录,默认为当前目录
      • *$ifchild 是否获取子目录文件列表,默认不获取
      • *$curpath 显示当前的路径,默认为从当前目录开始
      • *&$pach_html_srt 传递一个外部变量的引用进来,因为此方法有可能被递归调用,所以以这样的方式来保存
      • * 一些信息,也可以用全局变量来实现,在函数内部变量改变也影响到外部。
      • *&$path_ref_count 原理同上,一个计数标志,如果递归,计数器从上一次保存的值开始自增
      • */
      • function openpath($path=".",$ifchild=false,&$path_html_str,&$path_ref_count)
      • {
      • $handle = opendir($path);
      • if($handle)
      • {
      • while(false !== ($file = readdir($handle)))
      • {
      • if ($file != "." && $file != "..")
      • {
      • $fullPath = $path.DIRECTORY_SEPARATOR.$file;
      • if(is_dir($fullPath))//如果文件是目录
      • {
      • $path_html_str.='
      • ';
      • $path_html_str.=$file.'
          ';
        • if($ifchild)
        • {
        • //递归
        • openpath($path.DIRECTORY_SEPARATOR.$file,$ifchild,&$path_html_str,&$path_ref_count);
        • }
        • $path_html_str.='
      • ';
      • }
      • }
      • }
      • }
      • closedir($handle);
      • }
      • ?>
      复制代码

      jquery mcDropdown 插件下载地址:http://www.givainc.com/labs/mcdropdown_jquery_plugin.htm。



      Kenyataan:
      Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn