Переименовать каталог, используя PHP Script

У меня есть каталог, содержащий папки, такие как

BaseUrl / 2-435435435_323423 /

BaseUrl / 5_435435435_32423 /

BaseUrl / 3_543543543_2342342 /

Теперь я хочу переименовать все папки с их первоначального имени на новое имя, то есть обрезать последнюю часть, отделив ее «_». новые имена будут

BaseUrl / 2-435435435 /

BaseUrl / 5_435435435 /

BaseUrl / 3_543543543 /

$path_from = 'E:/documents/';
if(file_exists($path_from)){
$files = scandir($path_from);
foreach($files as $key1 => $file) {
$newName = ? // I need this
rename($path_from.$file,$path_from.$newName);
}
}

Или дайте мне знать, есть ли в Windows возможность переименовать пакет без какого-либо сценария.

0

Решение

Как вы упоминаете для получения только $newName, Просто используй substr а также strrpos,

strrpos — Найти числовую позицию последнего вхождения строки

$str = 'baseurl/3_543543543_2342342/';

$pos = strrpos($str, "_");
if ($pos === false){
//do nothing
}else
$str = substr($str, 0, $pos)."/";

echo $newName = $str; //baseurl/3_543543543/
2

Другие решения

Вы можете использовать strstr

$path_from = 'E:/documents/';
if(file_exists($path_from)){
$files = scandir($path_from);
foreach($files as $key1 => $file) {
$newName = strstr($file, '_', true);
rename($path_from.$file,$path_from.$newName);
}
}

например

$str = 'baseurl/2-435435435_323423/';
$imagePreFix = strstr($str, '_', true);
echo $imagePreFix;

ВЫХОД:

BaseUrl / 2-435435435

1

$newName = substr($file, 0, strrpos($file, '_'));
0
По вопросам рекламы [email protected]