Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: заменить некоторые параметры в URL
 
 автор: elenaki   (02.02.2010 в 21:50)   письмо автору
 
 

искала-искала, не нашла. есть URL вида:
?start_from=0&id=1408&cat_id=1&subcat_id=0&peri_id=&nomo_id=&&sort=DESC&field=exp_date&cat_id=1&c_field[86]=-1&c_field[134]=&c_field[135]=&c_field[136]=&c_field[137]=&c_field[138]=&c_field[139]=&c_field[140]=&c_field[141]=&c_field[146]=-1&c_field[164]=-1&c_field[114]=9

надо вместо имеющегося id подставить другой.

  Ответить  
 
 автор: ~AquaZ~   (02.02.2010 в 22:04)   письмо автору
 
   для: elenaki   (02.02.2010 в 21:50)
 

preg_replace('|id=[\d]&|', 'id=9999999&', $url);

  Ответить  
 
 автор: big-trot   (02.02.2010 в 22:31)   письмо автору
 
   для: ~AquaZ~   (02.02.2010 в 22:04)
 

Позвольте скоректировать

preg_replace('|id=\d+&|', 'id=9999999&', $url);

  Ответить  
 
 автор: heed   (02.02.2010 в 23:07)   письмо автору
 
   для: big-trot   (02.02.2010 в 22:31)
 

плюс id встречается как cat_id,
значит придётся захватывать предъидущий ([?&]), подставляя как $1
, или просто проверять его наличие (?<=[?&])
, или хотя-бы указать границу слова \b ,перед id

// >\d+&
&может отсутствовать, если id будет последним из параметров

// и можно указать дополнительный параметр "колличество замен"

  Ответить  
 
 автор: Trianon   (02.02.2010 в 23:42)   письмо автору
 
   для: elenaki   (02.02.2010 в 21:50)
 

$query = preg_replace('/\&id=[0-9]+\&/', $query, "&id=$new_id&");

  Ответить  
 
 автор: heed   (02.02.2010 в 23:58)   письмо автору
 
   для: Trianon   (02.02.2010 в 23:42)
 

>"&id=$new_id&"

такое конечно не заменится ,) только не понятно что в $query :)

// извиняюсь что не дал поредактировать, если были такие намерения

  Ответить  
 
 автор: Trianon   (03.02.2010 в 00:50)   письмо автору
 
   для: heed   (02.02.2010 в 23:58)
 

В $query - QUERY_STRING , которую elenaki почему-то назвала URL'ом


PS. Это чересчур галантно. Отправляя что-то в портал, я теперь никаких мыслей "не дал отредактировать" не держу, даже если ответят мгновенно.
Не успел - сам виноват. Сперва думай - потом клацай.
Предпросмотр бы. Но ... Вы ж понимаете.

  Ответить  
 
 автор: elenaki   (03.02.2010 в 08:06)   письмо автору
 
   для: Trianon   (03.02.2010 в 00:50)
 

всем спасибо. как доберусь до работы, проверю...

  Ответить  
 
 автор: elenaki   (03.02.2010 в 09:43)   письмо автору
 
   для: Trianon   (02.02.2010 в 23:42)
 

TAK, HO HAO6OPOT -
$query = preg_replace('/\&id=[0-9]+\&/',"&id=$new_id&", $query); 


THANKS

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования