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

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

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

 

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

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

тема: Замена :код_смайлика: на изображение
 
 автор: NIK   (17.01.2007 в 19:59)   письмо автору
 
 


$content = preg_replace("#:(.+):#is", "<img src='engine_img/smiles/\\1.gif' hspace='2'>", $content);


Служит для замены кодов смайлов на изображения. Проблема в том, что оно захватывает не только символы типа :smile:, но и к примеру ссылки http:// или просто двоеточие и тогда всё идёт на перекосяк. Насколько я знаю нужно использовать символ ^ для исключающего выражения, но вот где именно никак не пойму. Может это выражение вообще не подходит под решение этой задачи?

   
 
 автор: kasmanaft   (17.01.2007 в 21:06)   письмо автору
 
   для: NIK   (17.01.2007 в 19:59)
 

В данном случае ищатся два двоеточия (причем первое из них - то, которое встретилось первым в тексте, второе - самое последнее двоеточие) и между ними любые символы...

Вместо "smile" могут быть только буквоцифры?
Если "да", то можно попробовать вот так:

#:(\w+):#is
Ну а если "нет", то расскажите, что там может встретиться, какой длины и т.д.

   
 
 автор: NIK   (17.01.2007 в 21:42)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 21:06)
 

только буквы, это подходит. Огромное спасибо!

   
Rambler's Top100
вверх

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