Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание шаблона, замена текста между символами, Помогите с обработкой шаблона! 
V
    Опции темы
xoslv
Дата 24.4.2007, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



Ув. програмисты!
Подскажите пожалуйста, как реализовать систему которая бы меняла текст между определёнными символами, например {} или %%?
Скажем есть кусок хтмл кода:
Код

<td>{cat_name}</td>

Как сделать так чтобу в приведённой ниже строке, ненадо было писать эти скобки?
Код

$content = str_replace("{cat_name}", $cat_name_.$lang, $content);

Зарание огромное спасибо!
--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
capitan
Дата 25.4.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 1
Всего: 13



Код

$content = str_replace("<td>{", "<td>", $content);
$content = str_replace("}</td>", "</td>", $content);


Это сообщение отредактировал(а) capitan - 25.4.2007, 11:01
PM MAIL WWW ICQ   Вверх
xoslv
Дата 26.4.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



Не, нифига....
Скажу проще. Мне надо чтобы {lang.logo_descr} заменялось на $lng['logo_descr'], а {tpl.main_menu}, менялось на $tpl['main_menu']
 smile 

--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
z-END
Дата 26.4.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Код

    foreach ($tpl as $v=>$k){
       $vd="{tpl.".$v."}";
       $result=str_replace($vd,$k, $result);
     }
 }


ну что-то в этом роде...

Это сообщение отредактировал(а) z-END - 26.4.2007, 11:46


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
xoslv
Дата 26.4.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



Что-то не попёрло....
А если попробовать так:
например как сделать поис на символы {}
и всё что между ними далать примерно так:
Код

$replacer = explode('.',$moj_shablon);
if ($replacer[0]=='lang') {
     $content = str_replace($moj_shablon, $lng[replacer[1]], $content);
}

Сто-то типо того надо, но для начано надо определить переменную $moj_shablon. Как это сделать?

Это сообщение отредактировал(а) xoslv - 26.4.2007, 12:28
--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
z-END
Дата 26.4.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



тренируйся... обязательно попретsmile
или пиши по существу.


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
xoslv
Дата 26.4.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



посмотри выше, я отредактировал сообщение!
--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
mishaSL
Дата 26.4.2007, 13:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 9
Всего: 54



Вот как вариант накидал:
Код

<?php
$templ = <<<TPL
<p>{tpl.name}</p>
<p>{lang.logo_name}</p>
TPL;

$lang['logo_name'] = 'Название LOGO LANG';
$tpl['name'] = 'Название TPL';

print preg_replace('#{([a-z0-9_\-]+)\.([a-z0-9_\-]+)}#ise', "$$1['$2']",$templ);
?>



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
xoslv
Дата 26.4.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



Вот короче мой индекс.пхп
Код

include 'conf/def.php';
include __LNG__.'ru_main.'.$phpEx;
$content = file_get_contents(__TPL__.'main.tpl');
include __INC__.'replacer'.$phpEx;
print $content;


Вот кусок из шаблона:
Код

<span class="Logo_d">{lng.logo_descr}</span>

Вот replacer.php:
Код

<?php
$content = preg_replace('#{([a-z_\-]+)\.([a-z_\-]+)}#ise', "$$1['$2']", $content);
?>

Вот языковой файл:
Код

$lng = array();
$lng['logo_descr'] = "Миллион ссылок с миллионным посещением";

И ничего не выходит.... В лог файле сервера пишет это:
Код

Undefined variable: lng in /srv/www/test/million/includes/replacer.php(2) : regexp code on line 1

Помогите плз.......  smile 
--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
mishaSL
Дата 26.4.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 9
Всего: 54



Не определена переменная $lng. Поменяйте файл replacer.php так:
Код

<?php
var_dump($lng);
$content = preg_replace('#{([a-z_\-]+)\.([a-z_\-]+)}#ise', "$$1['$2']", $content);
?>


Постотрите виден ли массив, если нет значит, значит твой языковый файл перед этим не подключен.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
xoslv
Дата 26.4.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



Огромнейшее спасибо! Разобрался!  smile 
--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0628 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.