Только регулярка
Мне нужно только с помощью регулярок выбрать последние 3-5 папок.
$folder = 'http://www.googlelayouts.axw.axisbase.net/myspace-graphics/pixel-signs/quotes/welcome-text/file.html';
if (preg_match_all('/([a-z\-]*\/)/',$folder,$eregResult)){
print "Yes<br>";
print_r($eregResult);
}
Этот вариант работает, но для уверености я хочу указать начало пути.
$folder = 'http://www.googlelayouts.axw.axisbase.net/myspace-graphics/pixel-signs/quotes/welcome-text/file.html';
if (preg_match_all('/http:\/\/.*/myspace-graphics/([a-z\-]*\/)*/',$folder,$eregResult)){
print "Yes<br>";
print_r($eregResult);
}
Данный вариант вытаскивает только одну папку, а мне нужно все. Как это сделать?
Вот тебе правильное regexp-выражение:
Код:
#http://.*/myspace-graphics/([a-z\-]*/).*#
Тот же самый результат
как насчет такого варианта?
Код:
$Result = explode('/', $_SERVER['REQUEST_URI']);
или вот такой:
Код:
$Result = parse_url($URL);
Действительно для разбора URL использовать регулярки)))) из пушки по воробьям.
Регулярки вообще одни из самых тормозных функций, так что их лучше использовать когда без них просто ни как не реально обойтись.
Действительно для разбора URL использовать регулярки)))) из пушки по воробьям.
Регулярки вообще одни из самых тормозных функций, так что их лучше использовать когда без них просто ни как не реально обойтись.[/QUOTE]
Я же не спрашивал, как лучше парсить урл :)
У одного чувака была проблема с регуляркой такого типа, и первое, что я ему посоветовал, так это разбить строку с помощью split'a.
Но сам ради интереса решил попробовать сделать через регулярку.
Уж больно интересно :)
split будет быстрее регулярки работать. Особенно если в регулярке не используют квалификаторы жадности.
квантификаторы... а не квалификаторы =)))
от английского слова "quantity" - количество