Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2009, 23:02   #1
Alhazred
Новичок
Джуниор
 
Регистрация: 26.07.2009
Сообщений: 1
По умолчанию Apache+PHP. За и против многократного использования ECHO

На текущий момент, имеется движок, который отдает html, четырьмя этапами:
1) hider
2) menu1, menu2, menu3…
3) content блок1, content блок2, content блок3…
4) footer
В каждом блоке, возможно достаточно большое количество вызовов echo.

Можно ли выиграть в производительности, если многократные вызовы функции echo заменить на функцию сложения строк, чтобы в последствии отдавать клиенту страницу единым echo, одной порцией?
Alhazred вне форума Ответить с цитированием
Старый 17.12.2009, 23:13   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

например так:
Допустим index.php:
Код:
<html>
<head>
<title>abc<?=date("d.m.Y");?></title>
</head>
<body>
<?
// blablabla
// php data
?>
<div> sdfgsdfg</div>
<?
// blablabla 
// another php data
?>
</body>
</html>
ЗЫ. На производительность это влияет таким образом, что РНР-движку не требуется парсить "левые" символы (ХТМЛ-разметку)
SkyM@n вне форума Ответить с цитированием
Старый 17.12.2009, 23:49   #3
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
ЗЫ. На производительность это влияет таким образом, что РНР-движку не требуется парсить "левые" символы (ХТМЛ-разметку)
А РНР движок разве парсит хтмл-разметку?
Например:
Код:
echo "<div class=menu> <!-- blalbalba --></div> ";
Он просто выведет то что в echo.
Или я что то не так понял?
psycho-coder вне форума Ответить с цитированием
Старый 18.12.2009, 00:07   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Да, он его парсит на предмет выявления РНР-кода.
Лучше писать так:
Код:
<div class="menu">
<?php echo "значение"; ?>
</div>
или же так: (эквивалентно)
Код:
<div class="menu"><?="значение";?></div>
В данном случае, конечно же - это неоправданная оптимизация. Но в случае обработки больших кусков текстов - крайне желательная.
SkyM@n вне форума Ответить с цитированием
Старый 18.12.2009, 01:35   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
Да, он его парсит на предмет выявления РНР-кода.
А, вон что имелось ввиду))
Я приучил себя писать "чистый" РНР код, не знаю хорошо это или плохо))
psycho-coder вне форума Ответить с цитированием
Старый 18.12.2009, 02:48   #6
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Чистый не получится. Или получится, но с потерями производительности. Но опять таки - если кода мало, то можно и не оптимизировать. Хотя я бы - стал)
SkyM@n вне форума Ответить с цитированием
Старый 18.12.2009, 11:12   #7
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
А РНР движок разве парсит хтмл-разметку?
Например:
Код:
echo "<div class=menu> <!-- blalbalba --></div> ";
Он просто выведет то что в echo.
Или я что то не так понял?
Во первых надо "переходить к цивилизации" , те использовать шаблонизаторы, которые позволяют вообще не мешать разметку и код.
Во вторых -
Код:
echo "<div class=menu> <!-- blalbalba --></div> ";
если сделать вывод строки так те с двойными кавычками ", то php будет парсить эту строку, "думая" что там есть переменные.
А если вывести строку так
Код:
echo '<div class=menu> <!-- blalbalba --></div> ';
те с одинарными кавычками ' то php искать в ней ничего не будет и соответсвенно отработает быстрее.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 22.12.2009, 17:40   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от psycho-coder
Я приучил себя писать "чистый" РНР код, не знаю хорошо это или плохо))
Скорее хорошо, чем плохо. Но код должен быть совершенно чист от каких-либо HTML-конструкций (в том числе и в echo).
Так что лучше всего использовать шаблоны, написав свой шаблонизатор или заюзав уже существующие.

Цитата:
Сообщение от mv28jam
те с одинарными кавычками ' то php искать в ней ничего не будет и соответсвенно отработает быстрее.
Да это всё глупости. Проведите реальные замеры и сами убедитесь, что ни какой разницы.

Последний раз редактировалось Arigato; 22.12.2009 в 17:50.
Arigato вне форума Ответить с цитированием
Старый 22.12.2009, 20:03   #9
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Я всегда делаю так: (пример)
Код:
<html>
<!- разметка html -->
<?php echo "<div class=menu> <!-- blalbalba --></div>"; // хотя я так делаю только если есть связь с php. (переменную вставить)
 /* php код*/
 ?>
<!- разметка html -->
</html>
и не парюсь

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 22.12.2009, 20:04   #10
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Еще я где-то читал, что строка
PHP код:
<? /*код*/ ?><
иногда игнорируется движком в отличии от
PHP код:
<?php /*код*/  ?>
У меня на практике наблюдалось.
Код был с оперетором "echo"(Как мне нервы трепал )

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 22.12.2009 в 20:13.
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить запись в MySQL. Apache. PHP. ViNcHeStEr PHP 3 11.08.2012 11:29
Как настроить PHP на Apache? Vasily-Z PHP 9 18.12.2009 02:19
Apache mod_rewrite и GET переменные php Алориан PHP 11 22.11.2009 08:20
PHP. Чем отличается print от echo? Doz1metr Помощь студентам 3 20.09.2009 12:43
Apache + php Ururu PHP 3 25.04.2009 15:39