|
|
|
|
|
для: sl1p
(20.10.2009 в 22:21)
| | спасибо,) и правда сморозил, умполумадваумаУм , да простит мне великий и могучий
<pre><?
$txt='http://localhost/flats/?page=4&page=3';
echo preg_replace("#(.*[&?])page=(\d+)#", '$1page=%s', $txt)
."\n\n"
. preg_replace("#([&?])page=(\d+)(?!.*[&?]page=\d)#", '$1page=%s', $txt);
| простые решения то и не заметил | |
|
|
|
|
|
|
|
для: heed
(20.10.2009 в 18:02)
| | хм а разве нет какого-то "регексного" оператора?:)
но всё равно конечно, спасибо! | |
|
|
|
|
|
|
|
для: sl1p
(20.10.2009 в 17:38)
| |
<pre><?
$txt='http://localhost/flats/?page=4&page=3';
$offset = $out[(preg_match_all("#[\?&]page=\d+#",
$txt, $out , 2|PREG_OFFSET_CAPTURE) -1)][0][1];
// print_r($out);)
echo $txt = substr($txt, 0, $offset) . preg_replace("#\d+#",
'%s', substr($txt, $offset), 1);
| :)
// можно попробовать заменять несколько раз по одному числу , запоминая его, а потом заменить все кроме последнего обратно
, или preg_replace_callback() можно приспособить | |
|
|
|
|
|
|
| ссылка : http://localhost/flats/?page=4&page=3
$link = preg_replace("#(\?|&)page=(\d+)#", '$1page=%s', $reqUri, 1);
лимит на заменялку = 1
таким образом заменяет первое вхождение (page=4)
а как сказать чтобы последнее?) | |
|
|
|
|