php更改目录及子目录下所有的文件后缀扩展名的代码_php技巧

不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。
让大家看看是否需要完善的
代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。

复制代码 代码如下:

<?php
//本文件和要改变的目录下的文件 放在同一文件夹下
define("STA",".gif");//原来的文件格式
define("END",".jpg");//要改变的格式
$dir="./";
$arr=allfile($dir);
foreach($arr as $t)
{
$t=str_replace(".//","",$t);
if(substr_count($t,STA)>0)
{
$f2=str_replace(STA,"",$t);
rename($t,$f2.END);
}
}
//获取目录下所有文件的函数
function allfile($dir)
{
$files=array();
if(is_file($dir))
{
return $dir;
}
$handle = opendir($dir);
if($handle) {
while(false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..') {
$filename = $dir . "/" . $file;
if(is_file($filename)) {
$files[] = $filename;
}else {
$files = array_merge($files, allfile($filename));
}
}
} // end while
closedir($handle);
}
return $files;
}
?>

用字符串替换不太严谨,万一名称中就有gif程序就有异常。
建议使用PHP函数pathinfo(),循环段可修改为

复制代码 代码如下:

foreach($arr as $t)
{
  $path_parts = pathinfo($t);
  if($path_parts["extension"] == STA)
  {
    rename($t,$path_parts["dirname"]."/".basename($t,STA).END);
  }
}

时间: 2025-01-26 07:44:27

php更改目录及子目录下所有的文件后缀扩展名的代码_php技巧的相关文章

php更改目录及子目录下所有的文件后缀的代码_php技巧

不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下. 让大家看看是否需要完善的 代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的. 复制代码 代码如下: <?php //本文件和要改变的目录下的文件 放在同一文件夹下 define("STA",".gif");//原来的文件格式 define("END",".jpg");//要改变的格式 $dir="

php md5下16位和32位的实现代码_php技巧

复制代码 代码如下: <?php   echo substr(md5("admin"),8,16);  // 16位MD5加密   echo "<hr>";   echo md5("admin");    // 32位MD5加密   ?>      16位的MD5加密用substr函数截取了字符得到实现....  不想深入研究了 :)  要把脑力放到其他关键的地方~~  今天做了个php链接mssql数据库,数据库中的表中

php下图片文字混合水印与缩略图实现代码_php技巧

一 imageCreateFrom* 图片载入函数 //针对不同的后缀名图片 imagecreatefromgif imagecreatefromjpeg imagecreatefrompng imagecreatefromwbmp imagecreatefromstring 使用格式:imagecreatefromgif("jjj.gif"); 二 imagecopy 图片合并函数 imagecopy(destimage,simage,int x,int y,int src_x,in

php下批量挂马和批量清马代码_php技巧

复制代码 代码如下: <?php function gmfun($path=".") { $d = @dir($path); while(false !== ($v = $d->read())) { if($v == "." || $v == "..") continue; $file = $d->path."/".$v; if(@is_dir($file)) { gmfun($file); } else {

php下检测字符串是否是utf8编码的代码_php技巧

 function is_utf8($string) {      return preg_match('%^(?:              [\x09\x0A\x0D\x20-\x7E]                 # ASCII          | [\xC2-\xDF][\x80-\xBF]                 # non-overlong 2-byte          |     \xE0[\xA0-\xBF][\x80-\xBF]             # ex

PHP下利用header()函数设置浏览器缓存的代码_php技巧

这涉及到4种头标类型: Last-Modified(最后修改时间); Expires(有效期限); Pragma(编译指示): Cache-Control(缓存控制); 前三个头标属于HTTP1.0标准.头标Last-Modified使用UTC日期时间值.如果缓存系统发现Last-Modified值比页面缓存版本的更接 近当前时间,他就知道应该使用来自服务器的新版本. Expires 表明了缓存版本何时应该过期(格林威治标准时间).把它设置为一个以前的时间就会强制使用服务器上的页面. Pragm

php下利用curl判断远程文件是否存在的实现代码_php技巧

复制代码 代码如下: //判断远程文件 function check_remote_file_exists($url) { $curl = curl_init($url); // 不取回数据 curl_setopt($curl, CURLOPT_NOBODY, true); // 发送请求 $result = curl_exec($curl); $found = false; // 如果请求没有发送失败 if ($result !== false) { // 再检查http响应码是否为200 $

php读取目录及子目录下所有文件名的方法_php技巧

本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下: 复制代码 代码如下: $dir="./caxa/"; $file=scandir($dir); print_r($file); 稍微复杂点的,来自于php手册: 复制代码 代码如下: $dir = "/etc/php5/"; // Open a known directory,

LINUX find 命令怎么才能只找当先目录下的文件而不找子目录下的相同文件

问题描述 小弟目录如下 /home/mytest下面有4个包文件.zip,该目录下还有2011/02-2011目录这个目录下you同样的4个zip文件.问题:我用find . -name "*.zip" -print 查找,结果会打印出mytest 目录及子目录下的文件,我只想要4个可出来的是8个求解 怎么才能让只出来当前目录下的4个 问题补充:deepfuture 写道 解决方案 加个-maxdepth n参数指定查找最大深度就可以了find . -maxdepth 1 -name