Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Реглярка - вытащить id ссылки


Автор: sayber 13.11.2008, 13:02
Добрый день.

Нужно вытащить id из ссылки.

Я пробовал так:

Код

 $row['surl'] = preg_replace('http://host/index.php?newsid=(.*)',  '//1', $row['surl']);



Сама ссылка выглядет так http://host/index.php?newsid=12

Автор: skyboy 13.11.2008, 13:39
регулярки, регулярки...
http://php.net/parse_url + http://php.net/explode

Добавлено через 5 минут и 50 секунд
ладно. можно и регуляркой.
вот только
Цитата(sayber @  13.11.2008,  12:02 Найти цитируемый пост)
//1

http://ua.php.net/preg_replace. надо либо "$1", либо, если так сильно хочется слешами: "\\1".
кроме того, логику
Цитата(sayber @  13.11.2008,  12:02 Найти цитируемый пост)
 $row['surl'] = preg_replace('http://host/index.php?newsid=(.*)',  '//1', $row['surl']);

можно сделать и через str_replace:
Код

$row['surl'] = str_replace('http://host/index.php?newsid=',  '', $row['surl']);

формат входных данных неясен - только ли newsid  в параметрах, или нет. фиксирован ли путь, или можео меняться.

Автор: pirrat 13.11.2008, 14:30
если нужно вытащить только сам  id, то можно так

Код

$str = 'http://host/index.php?newsid=12'; //строка из которой нужно вытащить id
$needle = 'newsid='; //строка, после которой идет id, и она постоянно имеет такой вид
echo substr ( strstr ( $str, $needle ), strlen($needle) ); 

Автор: sayber 13.11.2008, 15:51
pirrat
Спасибо.

Тему можно закрывать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)