Это должно работать для вас:
<?php
$path = "dirname/user folder/sample_file.png";
echo $path = dirname($path) . "_trash/" . basename($path);
?>
Выход:
dirname/user folder_trash/sample_file.png
EDIT:
Вы можете найти папку, а затем просто заменить его на новый:
<?php
$path = "dirname/user folder/another folder/sample_file.png";
$searchFolder = "/user folder/";
$replaceFolder = "user folder_trash";
echo $path = preg_replace($searchFolder, $replaceFolder, $path, 1);
?>
Выход:
dirname/user folder_trash/another folder/sample_file.png
EDIT 2:
Если жало по той же схеме каждый раз, когда это должно работать, чтобы изменить вторую папку:
<?php
$path = "dirname/user folder/another folder/another folder/sample_file.png";
$parts = explode("/", $path);
$parts[1] = $parts[1] . "_trash";
echo $path = implode("/", $parts);
?>
Выход:
dirname/user folder_trash/another folder/another folder/sample_file.png
я уже делал это раньше. но если путь - это dirname/user folder/another folder/sample_file.png или dirname/user folder/другая папка/другая папка/sample_file.png – StoledInk
Ну, вы должны были поставить это как требование в свой вопрос. Короче говоря, это всегда вторая папка, которая должна быть объединена с '_trash'? – DarkBee
@StoledInk Обновлен мой ответ, так что теперь вы можете искать папку, и она заменяется на новую – Rizier123