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

Форум PHP

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

 

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

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

тема: str_replace
 
 автор: nikita2206   (29.05.2009 в 16:07)   письмо автору
 
 

Вот этот код:
<?
$var  
'{title}<br /><br /> {content}';
echo 
str_replace(array('{title}''{content}'), array('Что такое {content}?''Это контент'), $var);

Выдает:
Что такое Это контент?<br /><br /> Это контент
А как мне сделать чтоб он выдавал:
Что такое {content}?<br /><br /> Это контент

Это ведь както реализовано в Smarty, только как?

  Ответить  
 
 автор: Loki   (29.05.2009 в 16:26)   письмо автору
 
   для: nikita2206   (29.05.2009 в 16:07)
 

Построением структуры документа. В три строчки не получится.

  Ответить  
 
 автор: 0101010   (29.05.2009 в 16:27)
 
   для: nikita2206   (29.05.2009 в 16:07)
 

[поправлено модератором]

  Ответить  
 
 автор: nikita2206   (29.05.2009 в 16:42)   письмо автору
 
   для: 0101010   (29.05.2009 в 16:27)
 

[поправлено модератором]

  Ответить  
 
 автор: nikita2206   (29.05.2009 в 17:18)   письмо автору
 
   для: nikita2206   (29.05.2009 в 16:42)
 

спасибо всем, решил так:
<?
$this
->replace = array(
    
'post' => array(
        
'title' => 'Заголовок{content}',
        
'content' => 'Контент',
        
'root'      => TPL_DIR,
        
'http_host' => HOST
    
)
);

foreach(
$this->replace[$tplname] as $key => $value)
$
$key $value;
$tpl = !isset($this->tpls[$tplname]) ? $this->tpls[$tplname] = file_get_contents(ROOT.TPL_DIR.$tplname.'.tpl') : $this->tpls[$tplname];
eval(
'$tpl = "'.addcslashes($tpl'"').'";');
return 
$tpl;

  Ответить  
 
 автор: 3123123   (29.05.2009 в 18:52)
 
   для: nikita2206   (29.05.2009 в 17:18)
 

<?
$arr 
=  array('title' => 'Заголовок{content}'
        
'content' => 'Контент'
        
'root'      => TPL_DIR
        
'http_host' => HOST);
echo 
strtr($str$arr);


[поправлено модератором]

  Ответить  
 
 автор: 2342342   (29.05.2009 в 18:53)
 
   для: 3123123   (29.05.2009 в 18:52)
 

ззы
'{title}' => ...
'{content}' => ...
и т.д.

  Ответить  
 
 автор: nikita2206   (29.05.2009 в 19:03)   письмо автору
 
   для: 2342342   (29.05.2009 в 18:53)
 

я нехочу задавать массив, в ключах которого будут { и }, мало того, интерпретатор PHP наверняка быстрее выполнит функции поиска и замены, чем функция

  Ответить  
Rambler's Top100
вверх

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