PHP批量修改文件名称的方法分析

 更新时间:2017年02月27日 11:43:35   作者:小炒花生米  
这篇文章主要介绍了PHP批量修改文件名称的方法,结合实例形式分析了php针对文件与目录的递归、遍历、修改的原理与实现技巧,需要的朋友可以参考下

本文实例讲述了PHP批量修改文件名称的方法。分享给大家供大家参考,具体如下:

在这里我们利用一个战地自己写的一个例子来具体分析一下利用PHP批量修改文件名称的思路和注意事项。

从这个例子里你将会看到,PHP如何判断一个路径是不是目录,如何用PHP取得路径中的文件名称和文件的扩展名,随机函数rand的基本应用,以及这个程序的核心内容递归函数的基本应用

程序功能:利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称;

首先判断用户给出的目录是不是一个合法目录;

我们这里只是修改狭义的文件名称(不包括目录),所以在程序中一定要判断是不是目录,如果是目录我们就打开这个目录——从而实现遍历目录下的所有文件。如果不是我们就用一个随机的名称修改原来的文件名(用随机数做名称其实不科学,但是这不是我们的重点)。

具体的程序如下:

<?php
//利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称
function fRename($dirname){
 if(!is_dir($dirname)){
 echo "{$dirname}不是一个有效的目录!";
 exit();
 }
 $handle = opendir($dirname);
 while(($fn = readdir($handle))!==false){
 if($fn!='.'&&$fn!='..'){
  $curDir = $dirname.'/'.$fn;
  if(is_dir($curDir)){
  fRename($curDir);
  }
  else{
  $path = pathinfo($curDir);
  $newname = $path['dirname'].'/'.rand(0,100).'.'.$path['extension'];
  rename($curDir,$newname);
  echo $curDir.'---'.$newname."<br>";
  }
 }
 }
}
//给出一个目录名称调用函数
fRename('pl');
?>

程序分析:

第4行我们用is_dir函数来判断用户给出的目录是不是一个有效的目录名称;因为我们是学习所以写的简单一点如果你要放在服务器上供大家使用的话,你一定要谨慎的验证这个输入数据——例如,这个目录是否允许用户修改等等……

注意函数第9行的判断,必须用全等判断(PHP全等符号===三个等号,不全等!==一个叹号两个等号),否则如果有一个文件名称为0(零),会导致程序意外终止;

第12行,如果读取的文件是一个目录,就在此调用函数本身,实现函数的递归;

注意第16行pathinfo函数的用法,这个函数返回一个拥有三个元素的数组三个元素分别是:

Dirname路径的目录名称,basename路径包含的文件名称 和 extension文件的扩展名,具体这个函数的用法请参看手册相关部分。

在程序的17行中,使用了PHP的随机数函数rand,这是个基本的随机函数,其他随机函数请参看本站手册http://shouce.jb51.net/php5/

注意事项:一定要判断用PHP 的readdir函数读取的文件名称是不是”.”和”..”这很重要,为什么?你可以试试看呢!

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP分享图片的生成方法

    PHP分享图片的生成方法

    这篇文章主要介绍了PHP分享图片的生成方法,类似淘宝宝贝分享图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • php实现json编码的方法

    php实现json编码的方法

    这篇文章主要介绍了php实现json编码的方法,实例分析了php实现json编码转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php中文字符串截取方法实例总结

    php中文字符串截取方法实例总结

    这篇文章主要介绍了php中文字符串截取方法实例,针对常见的字符串截取函数进行了分析比对,并给出了一个完整实例来解决PHP中文字符串截取问题,需要的朋友可以参考下
    2014-09-09
  • 初步介绍PHP扩展开发经验分享

    初步介绍PHP扩展开发经验分享

    在PHP开发的过程中,有时候为了提高性能,需要选择扩展的方式去实现,本文简单介绍怎么开发一个简单的PHP扩展,解开PHP扩展开发的神秘面纱
    2012-09-09
  • PHP抽象类与接口的区别详解

    PHP抽象类与接口的区别详解

    今天小编就为大家分享一篇关于PHP抽象类与接口的区别详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • redis查看连接数及php模拟并发创建redis连接的方法

    redis查看连接数及php模拟并发创建redis连接的方法

    下面小编就为大家带来一篇redis查看连接数及php模拟并发创建redis连接的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • PHP 多维数组排序(usort,uasort)

    PHP 多维数组排序(usort,uasort)

    当我们想对多维数组进行排序时,多维数组的每个元素又是一数组类型,而两个数组如何比较大小?这是需要用户自定义的(是按每个数组的第一元素比较还是…)。
    2010-06-06
  • 基于PHP安装zip拓展,以及libzip安装的问题

    基于PHP安装zip拓展,以及libzip安装的问题

    下面小编就为大家分享一篇基于PHP安装zip拓展,以及libzip安装的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • php_screw 1.5:php加密: 安装与使用详解

    php_screw 1.5:php加密: 安装与使用详解

    本篇文章是对php_screw 1.5:php加密: 安装与使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php实现将上传word文件转为html的方法

    php实现将上传word文件转为html的方法

    这篇文章主要介绍了php实现将上传word文件转为html的方法,涉及php针对word文件操作的相关技巧,需要的朋友可以参考下
    2015-06-06

最新评论