我在名为'thumbs'的文件夹中有文件。它们的名称取决于原始作者如何命名/重命名。我想将它们重命名为两位数,我设法找到这个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';
,但它无效。
为什么不能不工作?
答案 0 :(得分:1)
我想我会先检查你是否真的收到任何错误报告。既然你说你只得到一个没有任何错误的空白页面,那么就像启用错误报告一样简单,看看究竟出了什么问题。
例如,如果PHP没有对Thumb-folder的写访问权限,那么当您尝试重命名文件时,可能会收到一堆警告。检查你的php.ini并确保display_errors = On
,再次运行脚本并检查是否有任何有用的错误消息。
不确定这是否有助于你(或display_errors
已经设置为开启),但这将是我尝试的第一步,希望能为您提供更多有关出错的详细信息。< / p>
答案 1 :(得分:0)
在功能的顶部添加:
if( !is_dir($path) ) {
die("error: $path is not a valid directory.");
// or whatever error handling method you prefer
}
如果由于某种原因,您的服务器上禁用了父路径,或者路径存在其他问题,则会在此处通知您。
如果这样可以正常工作,那么请单步执行代码并确保所有内容都符合您的预期。例如:$files
包含您期望的内容,$newname
格式正确,rename()
未返回false
,表示可能因权限而导致错误等等。
答案 2 :(得分:0)
$path = realpath(__DIR__ . '/..') . '/thumbs';
realpath()函数:http://php.net/manual/en/function.realpath.php
DIR (和其他魔术常数):http://php.net/manual/en/language.constants.predefined.php