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

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

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

 

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

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

тема: замена значений текста элементами массива
 
 автор: Axxil   (02.02.2006 в 12:52)   письмо автору
 
 

Имеем

$text="La la la al lala lala l {user_name} sdfsdfsdf {user_mail}";
Надо заменить шаблонные вставки на значения элементов массива с ключами соответствующими значениям в фигурных скобках. т.е.

$arr=array('user_name'=>'vasja',
                     'user_mail'=>'vasja@indahouse.com');
Должно получится:

$text='La la la al lala lala l vasja sdfsdfsdf vasja@indahouse.com';


Как это красиво сделать?

   
 
 автор: cheops   (02.02.2006 в 13:26)   письмо автору
 
   для: Axxil   (02.02.2006 в 12:52)
 

Хм... здесь помоему можно воспользоваться обычной функцией str_replace
<?php
  
foreach($arr as $index => $value)
  {
    
$text str_replace("{$index}",$value,$text);
  }
?>

   
 
 автор: Axxil   (02.02.2006 в 14:29)   письмо автору
 
   для: cheops   (02.02.2006 в 13:26)
 

Точно! Спасибо большое.
Только в вашем варианте остаются фигурные скобки при выводе $text
Когда сделал так:

<?php 
  
foreach($arr as $index => $value
  { 
    
$text str_replace("{".$index."}",$value,$text); 
  } 
?> 

Скобки пропали...
Почему? Таки не понял...

   
 
 автор: cheops   (02.02.2006 в 18:14)   письмо автору
 
   для: Axxil   (02.02.2006 в 14:29)
 

Если в значениях массива ($value) их нет, то они не должны выводится.

   
 
 автор: Axxil   (02.02.2006 в 18:21)   письмо автору
 
   для: cheops   (02.02.2006 в 18:14)
 

Ну это поянтно :)
Я имел ввиду что скобки оставались так:
было: {user_name} стало {vasja} а надо просто vasja (без скобок)

> Скобки пропали...
Всмысле всё заработало нормально

   
Rambler's Top100
вверх

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