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

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

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

 

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

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

тема: Скрипт файлов - функция preg_replace()
 
 автор: Deathless   (25.05.2007 в 23:33)   письмо автору
 
 

помогите разобратся что тут делается ?

мfunction parsesmileys($message) {
 $smiley = array(
  "#\:\)#si" => "",
  "#\;\)#si" => "",
  "#\:\(#si" => "",
  "#\:\|#si" => "",
  "#\:o#si" => "",
  "#\:p#si" => "",
  "#b\)#si" => "",
  "#\:d#si" => "",
  "#\:@#si" => ""
 );
 foreach($smiley as $key=>$smiley_img) $message = preg_replace($key, $smiley_img, $message);
 return $message;
}

   
 
 автор: mr Bin   (26.05.2007 в 00:10)   письмо автору
 
   для: Deathless   (25.05.2007 в 23:33)
 

Меняются текстовые смайлики на кое-что другое, на что мнеять - у Вас не указано.
Например:

"#\:\)#si" => "",

Замените на:

"#\:\)#si" => "<img scr='smile.gif'>",

И у Вас текстовая улыбка вида " :) " Заменится на соответствующую картинку.

Чтобы использовать данный код, там где Вы выводите какой-то текст, допустим он в переменной $text, Вам нужно его объять в скобочки, соответствующей функции, и тогда текстовые смайлы, заменятся на картинки:
parsesmileys($text);

Хотя, походу у Вас выводятся сообщения из переменной $message, поэтому наверно и даже заменять ничего не придётся..

И ещё, у Вас перед function стоит буква М - она не нужна :)

   
 
 автор: Deathless   (26.05.2007 в 00:27)   письмо автору
 
   для: mr Bin   (26.05.2007 в 00:10)
 

а можеш мне подсказать

"#\:\)#si" => "", 

что тут что
# что єто делает
\ ?
#si ?

   
 
 автор: mr Bin   (26.05.2007 в 00:34)   письмо автору
 
   для: Deathless   (26.05.2007 в 00:27)
 

Это регулярное выражение, на форуме даже отдельный подфорум есть для этого.
Сам не очень разбираюсь, но елси не вдаваться в подробности, то:
# -это мы какбы открываем область работы, тоесть с какого места начинать изменять
Слеши здесь стоят из-за двоеточия. Двоеточие нужно обрамлять с них, чтобы всё правильно работало.
Далее идёт скобка от смайлика :)
# закрываем область работы
si - в этом я ещё гуляю, но это какбы указывает на каком уровне разбирать это выражение.

   
 
 автор: Deathless   (26.05.2007 в 00:36)   письмо автору
 
   для: mr Bin   (26.05.2007 в 00:34)
 

Пасиба буду разбиратся...

   
 
 автор: Trianon   (26.05.2007 в 15:48)   письмо автору
 
   для: Deathless   (26.05.2007 в 00:27)
 

s - модификатор PCRE_DOTALL - здесь совершенно не нужен. Он управляет чувствительностью метасимвола "точка" к переводам строк.
i - модификатор PCRE_CASELESS - здесь тоже не нужен. Он управляет чувствительностью механизма к регистру букв.

http://ru2.php.net/manual/ru/reference.pcre.pattern.syntax.php

   
Rambler's Top100
вверх

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