Разбить url на три строки

Статус
Закрыто для дальнейших ответов.

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
833
Имеем строку, например
$url = "index.php или $url = "papka/index.php или papka/papka/papka/filename.php
и переменную $n величиной 0 <= $n <= количество слэшей в $url

Надо получить три строки или три элемента массива
- левая часть со слэшами до $n
- правая часть со слэшами после $n и до index.php
- имя файла

Причем, левая и правая части должны быть без слэша слева, а справа слэш и если пусто то тоже без слеша, имя файл без слэша.

Пример 1
Код:
$n =2
$url = "papka/index.php или papka/papka/papka/filename.php
тогда
Код:
$left = 'papka/'
$right = 'papka/papka/'
$file ='filename.php'
Пример 2
Код:
$n = 0
$url = filename.php
тогда
Код:
$left = ''
$right = ''
$file ='filename.php'
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Воспользуйся explode()
Разбей строку полностью.
А затем, если $n > 0 собери
Код:
$array = explode(" ", $url);
if ($n > 0){
  $left = $array[0];
  $file = array_pop();
} elseif ($n == 0) {
  $file = array_pop();
}
Я хотел сначала регуляркой предложить, как-то так https://regex101.com/r/nK3oV2/1
Но $n, не понятно откуда берущаяся. Хотя и её можно добавить в регулярку - {$n}.

Не до конца понятная задача. Может тебе вообще хватит parse_url()
 
Статус
Закрыто для дальнейших ответов.
Верх Низ