| imho.ws |
![]() |
|
|
|
# 1 |
|
Full Member
Регистрация: 16.09.2003
Сообщения: 793
![]() ![]() ![]() ![]() ![]() |
preg replace
PHP код:
[IMG:12] на <center><img src=\"../kit/picture.php?pid=12" title="бля бля бля"></center> вот бля бля и содержится в $title... но это меняет только первую [IMG: ... на картинку а остальные не трогает... подскажите где торможу |
|
|
|
|
# 8 |
|
Full Member
Регистрация: 16.09.2003
Сообщения: 793
![]() ![]() ![]() ![]() ![]() |
medved2002
а почемуже тогда в title значение послуднего титле во втором случае выходит... тоесть значение последнего прохождения цыкла Добавлено через 1 минуту: medved2002 дай пример со strreplace-- тут целый парсер надо строить так как. длина цыфры в [IMG:... постоянно различная |
|
|
|
|
# 9 |
|
Guest
Сообщения: n/a
|
Ну смотри
у тебя есть текст "[IMG:0] ывралфыв [IMG:1] ывмрывфлоалы [IMG:2]"; начинаем цикл. первый заход $i = 0; $i<3{ выполняем прег_репласе на выходе получаем следующее Код:
"<center><img src="../kit/picture.php?pid=0" title="Титле"></center> ывралфыв <center><img src="../kit/picture.php?pid=1" title="Титле"></center> ывмрывфлоалы <center><img src="../kit/picture.php?pid=2" title="Титле"></center>" Вопрос: Найдет ли прег_репласе в следующем цикле в этом тексте что либо похожее на [IMG:(\d)]? |
|
|
# 13 |
|
Guest
Сообщения: n/a
|
Это со стррепласе
for($i=0; $i < count($title); $i++) { $text = str_replace("[IMG:$i]","<center><img src=\"../kit/picture.php?pid=\1\" title=\"".$title[0][$i]."\"></center>",$text); } Есть вариант заставить прег репласе каждый раз когда он находит совпадение выполнять некую функцию и заменять совпадение на результат выполнения этой функции Добавлено через 3 минуты: Ну я уж закончу с прег_репласем function retImg($i){ global $title; return '<center><img src=\"../kit/picture.php?pid='.$i.'\" title=\"'.$title[0][$i].'\"></center>'; } $text = preg_replace('/\[IMG:(\d+)\]/e', "retImg($1);", $text); Последний раз редактировалось medved2002; 31.03.2004 в 19:30. |
|
|
# 16 |
|
Full Member
Регистрация: 16.09.2003
Сообщения: 793
![]() ![]() ![]() ![]() ![]() |
щас попробую твой второй вариант..
а что $1 - это и будет та цыфра... Добавлено через 5 минут: Warning: Compilation failed: unmatched parentheses at offset 8 in /home/h_shuron/web/de/tusovoditel/www/news/index.php on line 67 вот что говорит.. на твой второй выриант с функцией 67 это строчка с preg_replace |
|
|
|
|
# 17 |
|
Guest
Сообщения: n/a
|
Ага. Она и будет. Ты только потом скинь код который у тебя не работал - чисто в исследовательских интересах
Добавлено через 3 минуты: А ты точно скопировал паттерн для прег_реплейса? Вроде как он на него ругается. Добавлено в ту же минуту: У меня все выполняется на ять Добавлено через 5 минут: Есть подозрение что у тебя в этом паттерне /\[IMG:(\d+)\]/e пропало :( - ушло в смайлик. |