search
Homephp教程php手册利用php+mcDropdown实现文件路径可在下拉框选择
利用php+mcDropdown实现文件路径可在下拉框选择Jun 13, 2016 am 11:41 AM
phpdrop downinformationuseaccomplishdocumentuseTable of contentsreadpathconductchoose

最近用php进行文件目录信息读取,在网上弄到下面一段代码:
//获取指定目录下的文件列表
//$path 指定的目录,默认为当前目录
//$ifchild 是否显示子目录文件列表,默认不显示
//$curpath 显示当前的路径,默认为从当前目录开始;这个主要是为了显示确定href路径

复制代码 代码如下:


    function openpath($path=".",$ifchild=false,$curpath=".") 
    { 

        $handle = opendir($path); 
        if($handle) 
        { 
           while(false !== ($file = readdir($handle))) 
           { 
               if ($file != "." && $file != "..")  
               { 
                    $fullPath = $path.DIRECTORY_SEPARATOR.$file; 
                    if(is_dir($fullPath))//如果是目录文件 
                    { 
                         if($ifchild)//如果设置了显示子目录 
                         { 
                            //递归 
                            openpath($path.DIRECTORY_SEPARATOR.$file,$ifchild,$curpath.DIRECTORY_SEPARATOR.$file); 
                         } 
                         else 
                         { 
                            echo "

  • $file
  • \n"; 
                             } 
                        } 
                        else if($file != basename(__FILE__))//排除当前执行脚本 
                        { 
                            echo "
  • $file
  • \n"; 
                        } 
                        else 
                        { 
                            echo $file; 
                        } 
                   } 
               } 
            } 
            closedir($handle); 
        } 

    因为自己要提供路径选择的功能,最好是有一个下拉菜单,里面有待选路径的显示,这样方便很多,于是自己改了改,把路径输出成一个无序列表。
    下面是一个取得当前文件下所有子文件路径的代码:

    复制代码 代码如下:


    /*获取指定目录文件路径列表
     *$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插件来让用户可以通过下拉菜单选择想进入的目录,所以需要封装成指定格式:

    复制代码 代码如下:


    $path_ref_count = 1;
    $path_html_str ='';
    openpath(".",true,&$path_html_str,&$path_ref_count);
    $path_html_str = '

      '.$path_html_str.'
    ';
    $path_html_str = str_replace ( "
      ", '', $path_html_str );

      这样我把$path_html_str传到前台,显示出来的就是一个符合mcDropdown要求的无序列表,就可以显示相应的待选列表了。
      完整代码如下:
      test.html

      复制代码 代码如下:





       
       test









       


        Please select a category:

        
       


       #categorymenu#



      test.php

      复制代码 代码如下:


      //目录信息处理
      $path_ref_count = 1;
      $path_html_str ='';
      openpath(".",true,&$path_html_str,&$path_ref_count);
      $path_html_str = '

        '.$path_html_str.'
      ';
      $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
        Statement
        The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
        如何利用GitLab进行项目文档管理如何利用GitLab进行项目文档管理Oct 20, 2023 am 10:40 AM

        如何利用GitLab进行项目文档管理一、背景介绍在软件开发过程中,项目文档是非常重要的资料,不仅能够帮助开发团队了解项目的需求和设计,还能提供给测试团队和客户参考。为了方便项目文档的版本控制和团队协作,我们可以利用GitLab来进行项目文档管理。GitLab是一个基于Git的版本控制系统,除了支持代码管理,还可以管理项目文档。二、GitLab环境搭建首先,我

        如何在PHP中实现SEO优化如何在PHP中实现SEO优化May 20, 2023 pm 01:30 PM

        随着互联网的发展,SEO(SearchEngineOptimization,搜索引擎优化)已经成为了网站优化的重要一环。如果您想要使您的PHP网站在搜索引擎中获得更高的排名,就需要对SEO的内容有一定的了解了。本文将会介绍如何在PHP中实现SEO优化,内容包括网站结构优化、网页内容优化、外部链接优化,以及其他相关的优化技巧。一、网站结构优化网站结构对于S

        如何在PHP中实现ERP系统如何在PHP中实现ERP系统May 20, 2023 pm 06:21 PM

        随着电子商务和企业管理的发展,许多企业开始寻找更好的方法来处理其日常业务流程。ERP系统是一种能够整合企业各种业务流程的软件工具。它提供了全面的功能,包括生产、销售、采购、库存、财务等方面,帮助企业提高效率、控制成本和提高客户满意度。而在PHP编程语言中,也能够实现ERP系统,这就需要我们掌握一些基本的知识和技术。下面,我们将深入探讨如何在PHP中实现ERP

        抖音推荐视频是什么意思?如何利用抖音推荐视频?抖音推荐视频是什么意思?如何利用抖音推荐视频?Mar 27, 2024 pm 03:01 PM

        抖音作为一个全球知名的短视频社交平台,靠着其独特的个性化推荐算法赢得了广大用户的青睐。本文将深入研究抖音视频推荐的价值和原理,帮助读者更好地了解和充分利用这一功能。一、什么是抖音推荐视频抖音推荐视频是根据用户的兴趣和行为习惯,利用智能推荐算法为用户筛选和推送个性化视频内容。抖音平台通过分析用户的观看历史、点赞和评论行为、分享记录等数据,从庞大的视频库中精选出最符合用户口味的视频进行推荐。这种个性化推荐系统不仅提高了用户体验,也帮助用户发现更多符合其喜好的视频内容,从而增强用户黏性和留存率。在这个

        在PHP中如何实现物联网开发?在PHP中如何实现物联网开发?May 12, 2023 am 11:51 AM

        随着物联网技术的发展和普及,越来越多的应用场景需要使用PHP语言进行物联网开发。PHP作为一种广泛应用于Web开发的脚本语言,它的易学易用、开发速度快、可扩展性强等特点,使其成为开发物联网应用的一种优秀选择。本文将介绍在PHP中实现物联网开发的常用技术和方法。一、传输协议和数据格式物联网设备通常使用TCP/IP或UDP协议进行数据传输,而HTTP协议是一个优

        如何在PHP中实现CRM系统如何在PHP中实现CRM系统May 20, 2023 pm 12:31 PM

        随着企业的发展,客户管理变得越来越重要。为了提高客户满意度和忠诚度,越来越多的企业采用客户关系管理系统(CRM)来帮助其管理客户关系。而PHP是一种流行的编程语言,因其简单易学、灵活和强大而被广泛应用于Web开发。那么,如何在PHP中实现CRM系统呢?本文将为您介绍实现CRM系统的步骤和技巧。Step1:需求分析在开始开发CRM系统之前,您需要进行需求分析

        如何利用 Go 语言进行并发编程?如何利用 Go 语言进行并发编程?Jun 10, 2023 am 10:33 AM

        随着计算机硬件的不断发展,处理器中的CPU核心不再单独增加时钟频率,而是增加核心数量。这引发了一个显而易见的问题:如何发挥这些核心的性能?一种解决方法是通过并行编程,即同时执行多个任务,以充分利用CPU核心。这就是Go语言的一个独特之处,它是一门专为并发编程而设计的语言。在本文中,我们将探讨如何利用Go语言进行并发编程。协程首先,我们需要了解

        如何在PHP中实现验证码如何在PHP中实现验证码May 20, 2023 am 11:31 AM

        随着互联网的不断发展,越来越多的网站需要使用验证码来保证安全性。验证码是一种借助人类能力而无法被计算机破解的认证技术,广泛应用于网站注册、登录、找回密码等功能中。下面将介绍如何使用PHP实现验证码功能。一、生成验证码图片验证码图片的生成是验证码功能的核心,需要生成一个随机字符,并将其渲染为图像展示给用户。在PHP中,可以使用GD库来生成图片。GD库是一种用于

        See all articles

        Hot AI Tools

        Undresser.AI Undress

        Undresser.AI Undress

        AI-powered app for creating realistic nude photos

        AI Clothes Remover

        AI Clothes Remover

        Online AI tool for removing clothes from photos.

        Undress AI Tool

        Undress AI Tool

        Undress images for free

        Clothoff.io

        Clothoff.io

        AI clothes remover

        AI Hentai Generator

        AI Hentai Generator

        Generate AI Hentai for free.

        Hot Article

        R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
        2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
        Repo: How To Revive Teammates
        1 months agoBy尊渡假赌尊渡假赌尊渡假赌
        Hello Kitty Island Adventure: How To Get Giant Seeds
        4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

        Hot Tools

        mPDF

        mPDF

        mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

        Notepad++7.3.1

        Notepad++7.3.1

        Easy-to-use and free code editor

        MinGW - Minimalist GNU for Windows

        MinGW - Minimalist GNU for Windows

        This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

        Atom editor mac version download

        Atom editor mac version download

        The most popular open source editor

        SublimeText3 Linux new version

        SublimeText3 Linux new version

        SublimeText3 Linux latest version