![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Цербер |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
Доброе время суток!
Пробую вникнуть в шаблонизаторы, и делаю небольшой пример для себя, всё вроде правильно но вот когда идёт возврат результата, пхп-шный код выводится как строка. вот сам код: tpl
класс обработки:
Заранее благодарю! |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а что другого ты ожидал?
$mas_need = array("<?php echo $","; ?>"); у тебя же вставляется сама строка. а где отправка его на выполнение? да и странно это, почему было сразу не замещать {TITLE} на $title? |
|||
|
||||
| Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
bars80080
можешь показать как правильно? |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
через класс, нет.
а просто - хватает одной функции str_replace в которую засовываешь кусок текста и массивы с заменяемыми данными
Это сообщение отредактировал(а) bars80080 - 9.9.2008, 16:31 |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Я бы рекомендовал str_ireplace для шаблонизатора - так не надо задумываться о регистре "переменных".
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
и снова здравствуйте=)
переделал функцию которая заменяет {var}, теперь она вставляет не переменную а её значение=) но почему то не все значения подставляются, а только последнее=( она находит {имя переменной} и вставляет значение, которое функции передаётся в массиве. помогите исправить=(
|
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Цербер, ну загнул. Ведь можно проще:
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
В двойных кавычках происходит экранизация всех символов... либо используй одинарные, либо функцию stripslashes -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Я бы рекомендовал PHP в качестве шаблонизатора.
Твой аналог послабее будет и велосипед. |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
А я так не считаю. Во-первых: такой подход очень не нравится верстальщикам - обычно их бесит, если среди HTMLa нужно вставлять PHP. Во-вторых: и как такой файл использовать? Если будем инклудить тупо - результат сразу будет выдаваться браузеру, мало того, что по чуть-чуть, так еще и куки после такого инклуда не будет возможности установить. Нет, конечно можно призвать на помощь ob_start() но по-мому это личшняя трата производительности. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
С таким подходом советую использовать смарти
|
|||
|
||||
| nerezus |
|
||||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Пожалуйста распиши это. Вариант «Тут на целый символ больше» не принимается.
Да вы прожженный экономист, батенька
Добавлено через 1 минуту и 54 секунды P.S.
|
||||||||||||
|
|||||||||||||
| Sunvas |
|
||||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Где Вы у меня циклы узрели? Сомневаюсь, что вызов трех функций (использование буфера, кстати), инклуд файла, проверка синтаксиса и выполнение кода, соответственно будет производительнее тупой замены по файлам. Хотя бы тем, что надо еще писать echo; ставить имя переменной, которая, заметим, чувствительна к регистру; ставить точку с запятой; в логических условиях нужно знать синтаксис и точные данные перемменных (допустим, переменная будет в классе и т.п.). При этом, если в шаблонизаторе найдется какая-то ошибка - это минимум создат NOTICE ошибку, максимум - повесит весь скрипт. Достаточно? Лично меня - нет. Спасибо. Кстати тут мне на ум пришел еще один недостаток Вашего метода. Если представить, что, допустим, шапка и низ сайта все время одинаковы от страницы к станице но каждый раз их нужно генерировать заново (заголовок, метатеги и т.п). Так чтобы все грамотно вывести, обычно люди пользуются такой премудростью:
Так вот, Ваш способ при помощи PHP шаблонизатора не будет работать, потому что ob_start() в функции SiteHeader() вызовут ошибку. Будет Вам, что сказать на сей счет? -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||
|
|||||
| gta4kv |
|
||||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Да и в соседней теме обсуждалось что это, так сказать, моветон |
||||
|
|||||
| nerezus |
|
||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
<?=$var?> - не надо. С хостингом проблем не будет - отконфигурировать можно.
Посмотри на старые языки и на современные ;) Закономерность )
Поэтому такими костылями(по крайней мере так считаю подобный код) не пользуюсь. |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |