我在一个叫做“拇指”的文件夹里有文件。它们的名称是根据原始作者如何命名/重命名的。我想按顺序将它们重命名为两位数,并设法找到以下PHP代码:
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’的文件夹中。
因此,它们如下
两个文件夹都在同一级别上。
如果两个文件夹都在不同的文件夹中,我如何执行'rename.php‘。
我试图包括$path = '../thumbs';,但它没有发挥作用。
为什么不工作?
发布于 2013-03-04 19:46:09
我想我会首先检查你是否真的收到任何错误的报告。因为您是说您只得到一个没有任何错误的空白页面,所以只需启用错误报告就可以查看到底出了什么问题。
例如,如果PHP没有对拇指文件夹的写访问权限,那么当您尝试重命名这些文件时,可能会收到大量警告。检查您的php.ini并确保display_errors = On,再次运行脚本,并检查是否收到任何有用的错误消息。
不确定这是否对您有帮助(或者display_errors是否已经设置为on),但这将是我尝试的第一步,希望这将为您提供更多关于错误所在的详细信息。
发布于 2013-03-04 17:24:16
在您的函数顶部添加:
if( !is_dir($path) ) {
die("error: $path is not a valid directory.");
// or whatever error handling method you prefer
}如果由于某种原因,您的服务器上禁用了父路径,或者该路径有其他问题,则将在此通知您。
如果这样做很好的话,那么请逐步检查代码,并确保一切都如您所期望的那样。例句:$files有您期望的内容,$newname格式正确,rename()没有返回false,这表示可能是由于权限引起的错误,等等。
发布于 2013-03-04 17:33:24
$path = realpath(__DIR__ . '/..') . '/thumbs';realpath()函数:http://php.net/manual/en/function.realpath.php
DIR (和其他魔术常数):http://php.net/manual/en/language.constants.predefined.php
https://stackoverflow.com/questions/15207129
复制相似问题