PDA

Просмотр полной версии : preg_match


Student :)
29.07.2009, 00:24
добрый вечер.

есть некий параметр
$url=http://sait.ru/page/xxxx/

как вытащить параметр xxxx ?
так только работает когда есть слэш после xxxx
а как сделать универсально если нет слэша после xxxx
preg_match("|(.*?)/page/(.*?)\/|i",$url,$user);

Gifts
29.07.2009, 00:35
Student :)
preg_match("|(.*?)/page/(.*?)\/?|i",$url,$user);

Student :)
29.07.2009, 00:42
Gifts не работает

FireFenix
29.07.2009, 00:54
<?php

$text = 'http://sait.ru/page/xxxx/';

if ($text{strlen($text) - 1} == '/')
{
$text = substr($text, 0, strlen($text) - 1);
}

$path = explode('/', $text);

print_r($path[count($path) - 1]); // $path[count($path) - 1] == xxxx

?>
<?php

$text = 'http://sait.ru/page/xxxx/';

$regex = '/^http:\/\/.*?\/.*?\/(.*?)\/{0,1}$/i';

preg_match_all($regex, $text, $path);

print_r($path); //$path[1][0] == xxxx

?>

Student :)
29.07.2009, 00:59
спасибо! щас попробуем

Gifts
29.07.2009, 12:04
Student :) Хм, да, ошибочка вышла, тогда так:
preg_match("|(.*?)/page/([^/]*)|i",$url,$user);
$arr = array(
'http://sait.ru/page/xxxx/',
'http://sait.ru/page/anotheruser',
'http://sait.ru/page/admin/trashbin'
);
foreach($arr as $url)
{
preg_match("|(.*?)/page/([^/]*)|i",$url,$user);
var_dump($user);
}