<?php echo $bla; ?> внутри HTML @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
На страницу 1 2  >  Страница 1 из 2 [ Сообщений: 39 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Заголовок сообщения: <?php echo $bla; ?> внутри HTML
Сообщение Добавлено: 3 Сентябрь 2005, 11:15:04 
Нифига не понимаю...
Внутри класса через fopen/fread открываю php-файл с хтмл-куском. В куске наличествую фразы вроде <?php echo $_SERVER['REQUEST_URI']; ?>. Дальше аналогичным образом открывается шаблон страницы. Потом в шаблоне страницы preg_replace`ом заменяю ^PIECE_OF_CODE^ на вышеописанный только что открытый кусок. Всё это потом в файле index.php эхом выводится. Проблема: пхп-код выводится как обычный текст.

В обычном пхп-файле такого нету, всё в порядке.

Ещё: попробовал внутри класса эхом вывести содержимое только что открытого файла -- такая же фигня.

Либо я где-то очень сильно туплю, либо что-то страшное происходит... *)

_________________
baby`s got an atom bomb
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 3 Сентябрь 2005, 11:24:46 
(sp), дело не в том, что класс или не класс, а в том, что ты не дал коду исполниться. Нужно заменять не на сам открытый кусок, а на результат его работы. ИМХО нужно Eval сделать. Ну и сам кусок должен быть несколько другим, не "echo", а выражение, которое возвращает строку там должно стоять.
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Сообщение Добавлено: 3 Сентябрь 2005, 11:33:19 
@TSV, за Eval спасибо, однако я из соображений паранойи делаю вместо <?=$bla?> <? echo $bla; ?>. Ведь первое -- менее строгий вариант второго, вроде отсутствия php у открывающего тэга. Впрочем, такой вариант тоже не работал. Eval сейчас буду пробовать.

_________________
baby`s got an atom bomb
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 3 Сентябрь 2005, 11:40:45 
(sp), не, "=", "return" и "echo" ("print") - все три штуки с разным поведением. В данном случае нужен именно "return", в случае обычного исполнения php-кода - "echo". ;)
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Сообщение Добавлено: 3 Сентябрь 2005, 12:18:37 
@TSV, я просто сначала не совсем понял, что именно имелось в виду под "другой кусок". Как бы то ни было, вопрос решён, всё работает, спасибо *).

_________________
baby`s got an atom bomb
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 3 Сентябрь 2005, 12:20:00 
анекдот! параноик боится шорт тага и делает евал.
каких только чудес не насмотришься в этой кунсткамере =)
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Сообщение Добавлено: 3 Сентябрь 2005, 12:46:54 
Чебурген, а что, eval() часто не работает?

_________________
baby`s got an atom bomb
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 6 Сентябрь 2005, 17:27:00 
использовать eval() - плохой стиль программирование. Т.к. если вы что-то не то напишите в eval() может быть плачевный результат. Я бы перехватывал выходной поток и обрабатывал его...
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Сообщение Добавлено: 6 Сентябрь 2005, 21:00:31 
GreatWeb, можно подробнее? Если я что-то не то напишу в любом другом месте кода, результат тоже может быть плачевным.
Anyway, спасибо за помощь, попробую сделать по-другому.

_________________
baby`s got an atom bomb
Ainur Муж.
соучастник
16
Сообщения: 731
Зарегистрирован: 15.09.04
Откуда: Italia
Сообщение Добавлено: 6 Сентябрь 2005, 21:31:56 
Eval при не правильном использовании выполнит не тот код на твоем «сайте» или выдаст его as html
А вообще RTFM
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Сентябрь 2005, 22:51:58 
Ainur, два вопроса:

1. Кто заставляет неправильно использовать eval?
2. Есть вообще в PHP что-то, что не приносит вреда при неправильном использовании? :)

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 6 Сентябрь 2005, 23:26:32 
оффтопик:
Тогда уж спросим проще: если вообще что-то, что не приносит вреда при неправильном использовании в программировании? ;) В быту - бывает.
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 7 Сентябрь 2005, 07:46:29 
Дело не во вреде евал.
А в формулировках и паранойе.
Это, конечно, далеко от Курепина, который евал применяет для борьбы с регистер глобалс, но тоже смешно.
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 7 Сентябрь 2005, 10:08:12 
Может, пересмотреть свое отношение к задаче? Eval я бы использовал в исключительных случаях. И, кстати, почему бы не использовать require?

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Сообщение Добавлено: 7 Сентябрь 2005, 11:53:58 
Чебурген, я так (по-длинному) писать привык. С eval() же до сих пор сталкиваться не приходилось.
Бaзиль, require использовать нельзя хотя бы потому, что кусок текста из файла всё равно потом нужно обрабатывать.

_________________
baby`s got an atom bomb
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 7 Сентябрь 2005, 11:58:54 
к твоей записи "по длинному" никто претензий не имеет.
я уже задолбался объяснять, в чём юмор, поэтому оставлю эти попытки.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 7 Сентябрь 2005, 12:13:34 
Чебурген,
оффтопик:
покажешь фотку в общем?
:mrgreen:

_________________
можно на ТЫ.
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 8 Сентябрь 2005, 19:03:46 
Просто использование eval() - считается плохим стилем программированием. Если можно обойтись без него, то не нужно юзать eval().
Это тема довольно известная (на счет eval).

Можно Вашу проблемы решиться по разному. К примеру, инклудить этот файл. Тут могут быть пара пробем. Но Вы их решите сами =)
Можно перехватывать выходной поток и разбирать все что передается браузеру... (фукции ob_...)

Что использовать... решать Вам.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 8 Сентябрь 2005, 21:21:08 

GreatWeb писал(а):
Просто использование eval() - считается плохим стилем программированием.



Кем считается?


Цитата:
Если можно обойтись без него, то не нужно юзать eval().



Без него можно обойтись всегда, так что постановка задачи неверна. Правильна постановка: на сколь большие извращения нужно идти, лиш бы не использовать eval? :)


Цитата:
К примеру, инклудить этот файл.



Прямой вопрос: чем это лучше eval?
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 8 Сентябрь 2005, 23:00:00 

Цитата:
на сколь большие извращения нужно идти, лиш бы не использовать eval



Crazy, :beer: :beer: :beer:
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 11 Сентябрь 2005, 09:16:45 

Цитата:
Кем считается?


Программистами.

Любое решение с использованием eval() - не является красивым.

Цитата:
на сколь большие извращения нужно идти


Перехват выходного потока или include это изврашение? Мда... сразу видно, что что настоящих извращений Вы не видели :)
Цитата:
чем это лучше eval?


что такое eval() читаем на php.net/eval что такое include читаем на php.net/include

Я не в коем случие на против eval(). Я за красивый код и красивые решения. :genius:
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 11 Сентябрь 2005, 09:26:11 

GreatWeb писал(а):
что такое eval() читаем на php.net/eval что такое include читаем на php.net/include



Дружок, не надо гнуть пальцы. Из того, что ты сейчас сказал, можно сделать только один вывод: у тебя нет вообще никаких аргументов.

Чтож. На этом можно и закончить.
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 11 Сентябрь 2005, 09:29:48 

Цитата:
Без него можно обойтись всегда


Решите такую задачу. Нужно создать 1000 функций с именами print1()… print1000(), которые будут печатать квадраты первых 1000 чисел. Попробуйте сделать это без eval() :-D

А с eval() все тривиально:
Код:
<?php
for ($i=1; $i<=1000;$i++)
 eval("function print$i() {echo $i*$i;}");
?>


В общем все эти споры на счет eval() уже пережеваны во многих книгах.
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 11 Сентябрь 2005, 09:40:17 

Crazy писал(а):
не надо гнуть пальцы


Я еще не начанал даже :DDDDDD если ссылки на мануал у тебя называется "гнуть пальцы", то гну.

Crazy писал(а):
Дружок



:killanasshole:
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 11 Сентябрь 2005, 09:50:26 

GreatWeb писал(а):

Цитата:
Без него можно обойтись всегда


Решите такую задачу. Нужно создать 1000 функций с именами print1()… print1000()



А более надуменного примера ты породить не смог? :) В тех случаях, когда в реальной жизни нужно создать функции в рантайме (обычно это означает, что их текст зависит от состояния скрипта), то это удобнее делается через create_function.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 11 Сентябрь 2005, 09:52:40 

GreatWeb писал(а):
Я еще не начанал даже :DDDDDD если ссылки на мануал у тебя называется "гнуть пальцы", то гну.



Дружок, не стоит так натуралистично косить под дурачка -- это может стать привычкой. Гнутьем пальцев в данном случае названа ситуация, когда на конкретный вопрос отвечают отсылкой к конкретному месту в документации, которое, однако, не содержит ответа на заданный вопрос.
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 11 Сентябрь 2005, 11:05:25 

Цитата:
Дружок, не стоит так натуралистично косить под дурачка


я б сказал, что косишь ты, дружок.

Цитата:
не содержит ответа на заданный вопрос


читай между строк + комменты.

я тут никакого не собираюсь убеждать в чем-то. просто то, что я говорю выше следует из более 5 летнего опыта работы с PHP.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 11 Сентябрь 2005, 11:53:34 

GreatWeb писал(а):
я тут никакого не собираюсь убеждать в чем-то.



На этой мажорной ноте и закончим ввиду бессмысленности продолжения.


Цитата:
просто то, что я говорю выше следует из более 5 летнего опыта работы с PHP.



Пять лет писать на PHP и не знать о create_function -- это да. Это опыт. Своеобразный. :)
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 11 Сентябрь 2005, 15:06:47 

Цитата:
не знать о create_function


Это Вы с чего так решили?

Вообщем, мы друг друга не понимаем, что для меня не удивительно.
Для автора этого топика уже предложили массу решений => тема себя исчерпала.

Цитата:
Пять лет писать на PHP


Я б показал Вам свое портфолио, тогда Вы сами поймете кто что стоит и может в этой жизни :) Но не будем … а то началаси какая то игра в плювки …
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 11 Сентябрь 2005, 15:32:48 

GreatWeb писал(а):
Это Вы с чего так решили?



Вот с этого: "Попробуйте сделать это без eval".


Цитата:
Я б показал Вам свое портфолио, тогда Вы сами поймете кто что стоит и может в этой жизни :) Но не будем … а то началаси какая то игра в плювки …



Я рад, что ты так беспокоишься о моем душевном здоровье. Действительно -- узнаю, сколь немеренно ты крут, и наложу на себя руки.
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 11 Сентябрь 2005, 15:51:10 

Цитата:
Вот с этого: "Попробуйте сделать это без eval".


Напиши без eval()'a... я посмотрю... только внимательно причитай:

Цитата:
создать 1000 функций с именами print1()… print1000()


Чтобы можно было вызывать так: print303();
Тут создание анонимных функций не подайдет.

Что ты на это скажешь? =))
Acid~Jazz Муж.
соучастник
1
Сообщения: 740
Зарегистрирован: 12.04.03
Откуда: Зеленоград
Сообщение Добавлено: 11 Сентябрь 2005, 17:17:06 
GreatWeb, скажите лучше, где может понадобиться создание тысячи однотипных функций, учитывая тот факт, что однотипность функций уже подразумевает возможность использования их как одну функцию с дополнительным параметром?

_________________
начинающий менеджер . http://acidjazz.photosight.ru/
GreatWeb Муж.
новый человек
21
Сообщения: 103
Зарегистрирован: 09.01.03
Откуда: Perm
Сообщение Добавлено: 11 Сентябрь 2005, 17:44:38 
Я привел этот пример, как опровержение слов Crazy:

Цитата:
Без него можно обойтись всегда



Acid~Jazz, где может этот пример понадобиться? Да не где. Бываеют задачи, которые решаются только через eval(), но их оочень мало, поэтому, лично я всегда стараюсь не ипользовать эту функцию.

Если автор ститает, что использовать eval() в своей задаче необходимым, то конечно надо юзать eval().

Цитата:
Потом в шаблоне страницы preg_replace`ом заменяю ^PIECE_OF_CODE^ на вышеописанный


Зачем использовать в Вашей задаче preg_replace()? Вам, на сколько я понял, не нужно заменять по конкретному шаблону => логичнее юзать str_replace() которая более чем в 10раз быстрее работает, чем первая... кто еще не знает =)
(sp)
соучастник
0
Сообщения: 559
Зарегистрирован: 22.01.05
Сообщение Добавлено: 11 Сентябрь 2005, 18:26:59 
Я привёл упрощённый пример. Как бы то ни было, проблема решена радикальным образом ("вообще по-другому").

_________________
baby`s got an atom bomb
Acid~Jazz Муж.
соучастник
1
Сообщения: 740
Зарегистрирован: 12.04.03
Откуда: Зеленоград
Сообщение Добавлено: 11 Сентябрь 2005, 18:40:07 

Цитата:
Acid~Jazz, где может этот пример понадобиться? Да не где. Бываеют задачи, которые решаются только через eval(), но их оочень мало, поэтому, лично я всегда стараюсь не ипользовать эту функцию.


я пришел к веб-программированию с языков более низкого уровня и во мне eval вообще вызывает отвращение. чтобы генерировать конструкцию языка, а потом ее выполнять? это, по-моему, совершенно бессмысленная и неторопливая фишка скриптовых интерпретаторов.

_________________
начинающий менеджер . http://acidjazz.photosight.ru/
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
На страницу 1 2  >  Страница 1 из 2 [ Сообщений: 39 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100