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


Posted in PHP onFebruary 27, 2017

本文实例讲述了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.3water.com/php5/。

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

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

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(5)
Oct 09 PHP
php 静态页面中显示动态内容
Aug 14 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
PHP语言中global和$GLOBALS[]的分析 之二
Feb 02 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
PHP随机数 C扩展随机数
May 04 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 #PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 #PHP
PHP 中使用ajax时一些常见错误总结整理
Feb 27 #PHP
PHP/HTML混写的四种方式总结
Feb 27 #PHP
老生常谈文本文件和二进制文件的区别
Feb 27 #PHP
php实现数据库的增删改查
Feb 26 #PHP
php查询及多条件查询
Feb 26 #PHP
You might like
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
Yii2中datetime类的使用
2016/12/17 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
python负载均衡的简单实现方法
2018/02/04 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
python队列Queue的详解
2019/05/10 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
毕业生大学生活自我总结
2014/01/31 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
金陵十三钗观后感
2015/06/04 职场文书