Удаление "нижней" папки в пути файла

maleficmax

Новичок
Удаление "нижней" папки в пути файла

Имеется путь вида /dir1/dir2/.. ../dirN/file.php
Нужно получить /dir2/.. ../dirN/file.php

Заранее благодарю за советы)
 

Фанат

oncle terrible
Команда форума
фигасе, строковые.

это, как я понимаю, не ты писал?
 

romy4

invoke [brain]
гораздо быстрее можно:
$str = ltrim($str,"\\/");
$str = strpbrk($str,"\\/"));

зы. старайся использовать строковые функции побольше в простых задачах.
четыре substr() быстрее работают, чем один preg_replace() ага.

-~{}~ 26.12.07 11:48:

ззы самому себе. кажется, надо перестать писать код, а просто тыкать в список строковых функций.
 

romy4

invoke [brain]
кстати, здесь в strpbrk($str,"\\/")); вторая скоба не нужна

-~{}~ 26.12.07 11:57:

$str = ltrim($str,"\\/"); уберает ведущий слеш
$str = strpbrk($str,"\\/"); возвращает строку, что идёт начиная со следующего слеша

-~{}~ 26.12.07 11:58:

на входе
$str = "/dir/path/to/file";

на выходе
$str = "/path/to/file";
 

Фанат

oncle terrible
Команда форума
это не наезд. это вопрос.
я тебя спросил, что делают экранированный бэкслэш и обычный слэш в твоем коде.
ты вопрос видел? ответить можешь?
 

romy4

invoke [brain]
Как что? Их необходимо вырезать перед применением strpbrk()
 

Фанат

oncle terrible
Команда форума
необходимо вырезать только дробь. как ясно видно из примера, который привел топикстартер. а обратную косую черту вырезать не надо
 

romy4

invoke [brain]
откуда тебе и мне знать, что он только в никсах будет применять? реализация по большому моему имху должна быть кроссплатформенной.
 

maleficmax

Новичок
ЗЫ За кроссплатформенность отдельное Сенкью :)

-~{}~ 26.12.07 12:22:

ЗЫЗЫ Не обижайся на него, он всегда такой)
 

zerkms

TDD infected
Команда форума
DIRECTORY_SEPARATOR, чудесная константа
(это на тему кроссплатформенности)
 
Сверху