![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
Как мажно подключить в скрипт строку, а не файл?
То есть вместо include 'test.php'; Прописать что-то вроде include_string "<?php echo 'тест'; ?>"; |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
Варианты с "переподвыподвертыванием" тоже подойдут =)
|
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
eval('...');
Добавлено через 9 минут и 13 секунд Помогло? |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
То что нужно, спасибо.
|
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
99,9%, что твоя задача неверно поставлена.
И ты решаешь не то, что тебе нужно. |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
Задача поставлена как нужно, сейчас проверил с eval() - не то... Мне нужно весь сценарий из файла прочитать в строку, внести изменения "на лету" и выполнить изменнный код из строки. Такое вообще возможно?
Это сообщение отредактировал(а) Ant0ha - 12.2.2010, 10:55 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
А можно поинтересоватьс, по каким критериям определяется, что "Задача поставлена как нужно"? Богатый опыт? Большая теоретическая подготовка?
|
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
А можно мы будем общаться по теме?
|
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Можно.
Когда мы увидим в теме смысл. Пока мы видим вопрос мальчика из песочницы, который нашел крысиный яд, и хочет сделать из него пирожки. При этом мальчик мнит себя директором ресторана. Когда взрослые люди говорят ему бросить бяку, он просит общаться по теме. Для общения по теме дяденька рекомендует описать исходную задачу, для которой понадобилось столь замысловатое решение, а потом выслушать очевидный простой ответ, который применяется повсеместно, и прошел мимо мальчика только в силу его очень низкого кругозора Это сообщение отредактировал(а) Ипатьев - 12.2.2010, 11:17 |
|||
|
||||
Sentox |
|
|||
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Сохранить изменённую строку в temp_file.php и подключить его.
Это сообщение отредактировал(а) Sentox - 12.2.2010, 11:32 |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
Ну, хорошо, "дяденька". Есть простой шаблонизатор, суть его заключается в замене "<?php echo " на "[*="; "<?php" на "[*"; "?>" на "*]"
То есть, чтобы в шаблоне не писать <?php echo $var; ?> прописать просто [*=$var*] (Что очень облегчает создание и восприятие шаблона). Сейчас шаблонизатор делает данную замену, сохраняет полученный код в файл, а затем уже подключает готовый код в сценарий и выполняет его. Я хочу обойти сохранение кода в кэш, заменить всё на лету и выполнить код из строки. Как вам такая постановка вопроса?) |
|||
|
||||
Sentox |
|
|||
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
||||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
В результате: Parse error: syntax error, unexpected '<' in /opt/lampp/htdocs/soomer-dc/test.php(3) : eval()'d code on line 1 |
|||
|
||||
Sentox |
|
|||
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
eval('<?php echo "test"; ?>');
При использовании eval() необходимо помнить о нескольких вещах. Запомните, что передаваемая строка обязана быть правильным кодом PHP, включая окончание операторов точкой с запятой, чтобы разборщик не отвалил на строке после eval(), и правильное escap-ирование в code_str. |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
Да, это понятно, но код ругается на <?php, вот в чем проблема, т.е. code_str не должна содержать <?php, ?>, ей нужен просто код, как если бы он был между <?php и ?>. Поэтому eval и не подходит...
|
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Бессмысленная. Я не понимаю, зачем делать два действия вместо одного. Если мы заменяем что-то в шаблоне, то почему бы сразу [*=$var*] на содержимое переменной $var и не заменить? Добавлено через 2 минуты и 9 секунд Не вижу, кстати, никакой принципиально разницы в восприятии между [*=$var*] и <?=$var?> ну никакой, абсолютно |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
1. Как я уже сказал измененный шаблон кэшируется, а потом берется из кэша и замена в последующие разы не выполняется.
2. Вы вроде бы и не новичек давно, а почему то элементарного не знаете.
Шаблонизатор ни для одного проекта и сервера делается, постоянно включать короткие теги для новых проектов будет ужасно не удобно, да и <?=$var?> лично мне не нравится. 3. Вопрос изначально стоял как: Возможно ли такое, если да то как? Если нет, я буду работать по старому. Еще раз говорю, пишем по делу, а не пытаемся как то доказать свое превосходство, Ипатьев. |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Просто вопрос. |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Мне не нужно доказывать свое превосходство
![]() Тем более, что мы говорим совсем не о нем. Речь, скорее, о разнице в опыте. Человек (и не один в этом топике), который видел всякие шаблоны и способы их применения, может посоветовать тому, кто изобретает велосипед в первый раз. Я не вижу в этом ничего плохого. Когда начинающий считает свое мнение единственно правильным - вот это да, это, как мне кажется, достойно порицания. Проблема явно высосана из пальца. Если вместо изобретения странного шаблонизатора вы бы воспользовались готовым - например Смарти - то проблем бы, как и потенциальной угрозы безопасности, в принципе не возникло бы |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
Смарти я использовал и использую в некоторых проектах (т.к. этого требует заказчик), но по сути шаблонизатор типа [*= - это тот же обычный php, который используется в тех же code-igniter, joomla, bitrix и т.д. (который подходит мне больше, чем смарти), только упрощает написание и восприятие шаблона... никакого велосипеда тут нет.
З.Ы. на заметку http://larin.in/archives/16 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Велосипед есть.
Обычного РНР я здесь не вижу. Вот автор по ссылке выше пишет, что не имеет смысла изобретать синтаксис [**], если можно написать <?php echo $title?> НО ЕСЛИ уж нам ударила в голову такая идея - то это смарти и получается. Изобретаемый заново велосипед. Добавлено @ 15:27 кстати, вспоминая смарти если уж в нашем воображении "измененный шаблон кэшируется, а потом берется из кэша и замена в последующие разы не выполняется" - то никакой проблемы я не вижу вовсе. вообще. Зачем тут же выполнять измененный шаблон, если он все равно запишется в файл и потом исполнится обычным порядком? Ровно точно так же, как это делается в смарти, и никакое исполнение на лету при этом не требуется Это сообщение отредактировал(а) Ипатьев - 12.2.2010, 15:39 |
|||
|
||||
Ant0ha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.3.2009 Репутация: 1 Всего: 2 |
Проблема в том, что при изменении изначального шаблона, необходимо обновлять кэшированный шаблон. Но это уже другая история. Думаю, тема исчерпана.
|
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Смарти это делает автоматически.
Еще одна причина не изобретать велосипед |
|||
|
||||
Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Ant0ha,
Так все же в чем вопрос и проблема топика? Началось все с этого -
Продолжилось этим -
А смысл? А кончилось этим -
-------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
segrey |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 26.12.2006 Репутация: нет Всего: нет |
ну измени строку на лету и засунь в eval. |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
Ant0ha, что то ты там не то делаешь. Сначала мне показалось что тебе для экспериментов это надо.
Запомни юный падаван: евал = зло |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Ant0ha, тоже выбирал между eval и include.
вот, на хабре обсуждают Eval и Include: http://habrahabr.ru/blogs/php/24038/ - выбрал Include ![]() |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Да, это клиника.
Кто с эвалами зачем-то сюда идет, не почитав тему, а автору - так вообще респект. Smarty изобретать не нужно - он уже есть. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |