爱折腾的人,永不止息。一直喜欢自定义主题和插件,之前的会员系统更改,也让我学到好多代码。文章源自狐狸影视城-https://fox-studio.net/31589.html
最近在写一个插件,目的用来在线修改 php 文件。还未完成,暂不做介绍。放几个图,自己体会下。文章源自狐狸影视城-https://fox-studio.net/31589.html
文章源自狐狸影视城-https://fox-studio.net/31589.html
文章源自狐狸影视城-https://fox-studio.net/31589.html
文章源自狐狸影视城-https://fox-studio.net/31589.html
文章源自狐狸影视城-https://fox-studio.net/31589.html
恩,还没完善。文章源自狐狸影视城-https://fox-studio.net/31589.html
文章源自狐狸影视城-https://fox-studio.net/31589.html
其中遇到一个棘手的问题,百度少都很少,就是从 php 中获取路径目录下的文件数量,并进行排序。前者好说,简单。文章源自狐狸影视城-https://fox-studio.net/31589.html
- $file_url=dirname(__FILE__).'/log_folder'; //目录路径,dirname(__FILE__) 为当前 php 所在目录。也就是我写插件的根目录,通目录下有个 log 的日志文件夹
- $handle = opendir($file_url); //打开目录句柄
- while (($file=readdir($handle))<>"") { //读取文件名到数组
- if($file !== '.' && $file != '..') //不知道为何,遍历出来的数组中会有两个点,只好用 if 去掉了。
- {
- echo "文件名是:$file<br>";
- }
- }
就这样,你可以获得 $file_url 路径下的目录的名称显示了。但更棘手的是目录文件的排序问题。文章源自狐狸影视城-https://fox-studio.net/31589.html
我想让最新的文件排最上方,可是 php 中并不好使。只百度到了文章源自狐狸影视城-https://fox-studio.net/31589.html
- /*
- $file_url 路径;
- $file 文件名;
- */
- $filedate = filemtime("$file_url/$file"); //文件日期
问题是,这个日期并非文件的某个属性,可以直接调用。就这里这么了我好久,最后想到,既然文件的日期算出来了。再遍历出文件名,进行匹配,写入数组。文章源自狐狸影视城-https://fox-studio.net/31589.html
键名用时间,键值用文件名。这样的话,在通过 arsort() 函数进行升序排列。就可以匹配到排序后的文件列表。文章源自狐狸影视城-https://fox-studio.net/31589.html
最终代码如下:文章源自狐狸影视城-https://fox-studio.net/31589.html
- $file_url=dirname(__FILE__).'/log_folder'; //路径目录
- $handle = opendir($file_url); //打开目录句柄
- $dir = array(); //声明一个数组
- while (($file=readdir($handle))<>"")
- { //遍历文件名到数组
- if($file !== '.' && $file != '..') //排除多余的不知道为什么会出现的两组小数点
- {
- $filedate = filemtime("$file_url/$file"); //文件日期
- $fileArr[$file] = $filedate; //写入数组,键名=> 键值
- }
- }
- arsort($fileArr); //排序
- $numberOfFiles = sizeOf($fileArr); //数组中数量
- for($i=0;$i<$numberOfFiles;$i++)
- { //循环出文件名序列
- $thisFile = each($fileArr); //返回键值和键名,赋值给函数
- $thisName = $thisFile[0]; //函数的一维就是文件名,函数的第二维是时间 $timeTime = $thisFile[1];
- /*$thisName = iconv("GBK","UTF-8",$thisName); //如果乱码,启用此项 */
- echo "<li><p>$thisName</p></li>"; //得出文件名序列
- }
- closedir($handle); //关闭目录句柄
文章源自狐狸影视城-https://fox-studio.net/31589.html
期待插件的完成吧,自己感觉屌屌的。。。。文章源自狐狸影视城-https://fox-studio.net/31589.html
2020 年 10 月 2 日 上午 10:27 1F
还行,能用