首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP顺序重命名文件夹中的文件?

问如何使用PHP顺序重命名文件夹中的文件?
EN

Stack Overflow用户
提问于 2013-03-04 17:14:53
回答 3查看 535关注 0票数 1

我在一个叫做“拇指”的文件夹里有文件。它们的名称是根据原始作者如何命名/重命名的。我想按顺序将它们重命名为两位数,并设法找到以下PHP代码:

代码语言:javascript
复制
function sequentialImages($path, $sort=false) {
 $i = 1;
 $files = glob($path."/{*.gif,*.jpg,*.jpeg,*.png}",GLOB_BRACE|GLOB_NOSORT);

 if ( $sort !== false ) {
  usort($files, $sort);
 }

 $count = count($files);
 foreach ( $files as $file ) {
  $newname = str_pad($i, strlen($count)+1, '0', STR_PAD_LEFT);
  $ext = substr(strrchr($file, '.'), 1);
  $newname = $path.'/'.$newname.'.'.$ext;
  if ( $file != $newname ) {
   rename($file, $newname);  
  }
  $i++;
 }
}

执行此代码的php称为'rename.php‘,它位于一个名为'admin’的文件夹中。

因此,它们如下

  1. ‘'admin’文件夹(包含rename.php)
  2. “拇指”文件夹(包含带有随机名称的图像)

两个文件夹都在同一级别上。

如果两个文件夹都在不同的文件夹中,我如何执行'rename.php‘。

我试图包括$path = '../thumbs';,但它没有发挥作用。

为什么不工作?

EN

回答 3

Stack Overflow用户

发布于 2013-03-04 19:46:09

我想我会首先检查你是否真的收到任何错误的报告。因为您是说您只得到一个没有任何错误的空白页面,所以只需启用错误报告就可以查看到底出了什么问题。

例如,如果PHP没有对拇指文件夹的写访问权限,那么当您尝试重命名这些文件时,可能会收到大量警告。检查您的php.ini并确保display_errors = On,再次运行脚本,并检查是否收到任何有用的错误消息。

不确定这是否对您有帮助(或者display_errors是否已经设置为on),但这将是我尝试的第一步,希望这将为您提供更多关于错误所在的详细信息。

票数 1
EN

Stack Overflow用户

发布于 2013-03-04 17:24:16

在您的函数顶部添加:

代码语言:javascript
复制
if( !is_dir($path) ) {
  die("error: $path is not a valid directory.");
  // or whatever error handling method you prefer
}

如果由于某种原因,您的服务器上禁用了父路径,或者该路径有其他问题,则将在此通知您。

如果这样做很好的话,那么请逐步检查代码,并确保一切都如您所期望的那样。例句:$files有您期望的内容,$newname格式正确,rename()没有返回false,这表示可能是由于权限引起的错误,等等。

票数 0
EN

Stack Overflow用户

发布于 2013-03-04 17:33:24

代码语言:javascript
复制
$path = realpath(__DIR__ . '/..') . '/thumbs';

realpath()函数:http://php.net/manual/en/function.realpath.php

DIR (和其他魔术常数):http://php.net/manual/en/language.constants.predefined.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15207129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档