Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выборка текста из MySQL и замена определёныч слов
Форумы портала PHP.SU » » Вопросы новичков » Выборка текста из MySQL и замена определёныч слов

Страниц (1): [1]
 

1. kuller - 10 Декабря, 2011 - 20:57:21 - перейти к сообщению
Имеется таблица template_email с полем template т.е. там хранится текст для отправки на email. После выборки текста надо заменить определёные слова на нужные.

например такой текст

текст текст {user} текст текст текст {home}

получается что {user} и {home} нужно заменить на другое.

знаю что можно это зделать через str_replace но чёт это напрегает слишком. да и код как та не сипмотично начинает выглядит.

как можно ещё это сделать?
2. Bio man - 10 Декабря, 2011 - 21:14:33 - перейти к сообщению
kuller пишет:
напрегает слишком
как напрягает? кого напрягает?
можете через preg_* но это напрягет сервер больше чем str_replace
3. kuller - 10 Декабря, 2011 - 21:28:04 - перейти к сообщению
Bio man пишет:
кого напрягает?


меня. т.к. замен штук 8 идёт это из одной таблицы только. вот и хочу узнать как подругому зделать можно.

Bio man пишет:
можете через preg_*


пробывал preg_replace текст заменялся но { } оставались.
4. Bio man - 10 Декабря, 2011 - 22:08:59 - перейти к сообщению
kuller пишет:
пробывал preg_replace текст заменялся но { } оставались.
плохая регулярка. делайте с str_replace, очень быстрая ф-ция. покажите как вы делаете с str_replace и я покажу как надо.
5. snikers987 - 10 Декабря, 2011 - 22:32:38 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $string = 'Привет, {user}! Вот это первое слово: {word1}, вот второе {word2}, третье {word3}. ';
  3.  
  4. $name = 'Мегаюзер';
  5. $word1 = 'slovo1';
  6. $word2 = 'slovo2';
  7. $word3 = 'slovo3';
  8.  
  9.  
  10. $search = array('{user}',
  11.                 '{word1}',
  12.                 '{word2}',
  13.                 '{word3}'
  14.                 );
  15. $replacment = array($name,
  16.                 $word1,
  17.                 $word2,
  18.                 $word3
  19.                         );
  20.                                        
  21. echo $result = str_replace($search, $replacment, $string);
  22. //Привет, Мегаюзер! Вот это первое слово: slovo1, вот второе slovo2, третье slovo3.
  23.  
  24.  


И чего тут не аккуратного?
6. kuller - 11 Декабря, 2011 - 12:45:35 - перейти к сообщению
snikers987 пишет:
И чего тут не аккуратного?


здесь сейчас окуратней стало.

чёт сам не додумался масивы создать таким образом.

Bio man, на данный момен на этом остановился

CODE (htmlphp):
скопировать код в буфер обмена
  1. preg_match_all('/\{(.*?)\}/is',$sql['template'],$vars);
  2. $sql['template'] = str_replace($vars[0][0],$logs,$sql['template']);
  3. $sql['template'] = str_replace($vars[0][1],$home,$sql['template']);

 

Powered by ExBB FM 1.0 RC1