2015-01-03 2 views

ответ

2

Это должно работать для вас:

<?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 
+0

я уже делал это раньше. но если путь - это dirname/user folder/another folder/sample_file.png или dirname/user folder/другая папка/другая папка/sample_file.png – StoledInk

+1

Ну, вы должны были поставить это как требование в свой вопрос. Короче говоря, это всегда вторая папка, которая должна быть объединена с '_trash'? – DarkBee

+0

@StoledInk Обновлен мой ответ, так что теперь вы можете искать папку, и она заменяется на новую – Rizier123

0

Другой способ:

  1. You также использовать функцию explode для разделения строки на элементы (используя count функция для получения номера).

  2. Затем измените каждый элемент. Это вам.

  3. Наконец, объединить элементы в строку с помощью string concatenation