imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 31.03.2004, 18:53     # 1
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
preg replace

PHP код:
 for($i=0$i count($title); $i++)
         {
$text preg_replace("/^\[IMG\:(\d+)\]/","<center><img src=\"../kit/picture.php?pid=\\1\" title=\"".$title[0][$i]."\"></center>",$text);
        } 
вот это должно по идее находить и заменять по одному.. все
[IMG:12] на <center><img src=\"../kit/picture.php?pid=12" title="бля бля бля"></center>
вот бля бля и содержится в $title...

но это меняет только первую [IMG: ... на картинку а остальные не трогает...
подскажите где торможу
shuron вне форума  
Старый 31.03.2004, 19:02     # 2
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
shuron
вместо
"/^[IMG:(d+)]/"
имхо нужно
"/[IMG:(d+)]/"
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 31.03.2004, 19:04     # 3
medved2002
Guest
 
Сообщения: n/a

preg_replace('/\[IMG:(\d+)\]/', "<center><img src=\"../kit/picture.php?pid=$1\" title=\"Титле\"></center>", '[IMG:12]');

Как минимум надо еще вместо [ поставить \[. Ибо [ - управляющий символ
 
Старый 31.03.2004, 19:05     # 4
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
ну да тогда он меняет всё.. это верно...
но title= тогда тоже везде одинаковый... последний в массиве... странно тоже...
shuron вне форума  
Старый 31.03.2004, 19:08     # 5
medved2002
Guest
 
Сообщения: n/a

Ясен пень что везде одинаковый. Чего ты хотел? Он тебе в первом же цикле все подобные выражения меняет, а в следющих циклах их уже нет за место них стоит тег ИМГ
 
Старый 31.03.2004, 19:08     # 6
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
medved2002

Что-то ты не так вопрос понял помойму..
shuron вне форума  
Старый 31.03.2004, 19:09     # 7
medved2002
Guest
 
Сообщения: n/a

Юзай /e или str_replace
 
Старый 31.03.2004, 19:12     # 8
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
medved2002
а почемуже тогда в title значение послуднего титле во втором случае выходит...
тоесть значение последнего прохождения цыкла

Добавлено через 1 минуту:
medved2002

дай пример со strreplace-- тут целый парсер надо строить так как.
длина цыфры в [IMG:... постоянно различная
shuron вне форума  
Старый 31.03.2004, 19:14     # 9
medved2002
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)]?
 
Старый 31.03.2004, 19:20     # 10
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
нет конечно...

ну так какой второй шаг...

Добавлено через 4 минуты:
погоди я догадываюсь ищем srreplace.. "title='Титле'"
и потом заменяем на тот что в массиве..
shuron вне форума  
Старый 31.03.2004, 19:21     # 11
medved2002
Guest
 
Сообщения: n/a

Второй шаг. Чего ты хочешь сделать?

То есть у тебя в массиве title[0] описалово всех картинок которые могут быть в тексте?
 
Старый 31.03.2004, 19:24     # 12
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
да...!!

и теперь я попробую так сделать...
но сначало надо перекусить...

спасибо! лови 5
shuron вне форума  
Старый 31.03.2004, 19:27     # 13
medved2002
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.
 
Старый 31.03.2004, 19:27     # 14
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
странно но так у меня не работает смотри мой второй топ.
shuron вне форума  
Старый 31.03.2004, 19:29     # 15
medved2002
Guest
 
Сообщения: n/a

Чего говорит? Какой код?
 
Старый 31.03.2004, 19:35     # 16
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
щас попробую твой второй вариант..
а что $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
shuron вне форума  
Старый 31.03.2004, 19:45     # 17
medved2002
Guest
 
Сообщения: n/a

Ага. Она и будет. Ты только потом скинь код который у тебя не работал - чисто в исследовательских интересах

Добавлено через 3 минуты:
А ты точно скопировал паттерн для прег_реплейса? Вроде как он на него ругается.

Добавлено в ту же минуту:
У меня все выполняется на ять

Добавлено через 5 минут:
Есть подозрение что у тебя в этом паттерне /\[IMG:(\d+)\]/e пропало :( - ушло в смайлик.
 
Старый 31.03.2004, 19:56     # 18
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Да ты прав имменно в смайдик и ушло...
и ещё одну ошибочку допустил подгоняя под собственные нужды..
теперь всё работает на ура..
спасибо!!!!
shuron вне форума  
Старый 31.03.2004, 19:58     # 19
medved2002
Guest
 
Сообщения: n/a

Со стрреплейсом у тебя чего не работало?
 
Старый 31.03.2004, 20:00     # 20
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
сос стрреплейсом я не стал делать.. второй вариант мне больше понравился...
всего один пробег по тексту...
shuron вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:06.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.