- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Наверное, наивный вопрос, но скажите, как PHP интерпретатор генерирует страницу, он обрабатывает сначала весь скрипт и создает готовую страницу, которую отдает браузеру или как-то по частям это делает?
Допустим у меня много php файлов в шаблоне, то он сначала все обработает и создаст готовую страницу или он по частям это делает и отдает браузеру кусками?
Извиняюсь за наивный вопрос.
Dmitriy_2014, все зависит от того как вы генерируете страницу.
php выдает результат на каждый return(echo, print, ...)
чтение файлов происходит сверху вниз, но обработка происходит только после полной загрузки всех включенных файлов. Т.е. если функцию запихнуть внизу документа, то вы ее прекрасно можете использовать вверху документа.
---------- Добавлено 29.05.2018 в 22:14 ----------
я думаю дальше тут уже все зависит от веб сервера и браузера, который может ожидать окончания передачи документа.
PHP - это не интерпретатор, как многие думают, а компилятор. Документ компилируется, линкуется и хранится в бинарном виде,
если исходник меняется (хэш и/или дата обновления) то происходит перекомпиляция / пересборка бинарника, а после этого уже исполнение.
т.о. крайне не рекомендуется писать велосипеды вида
Ну а дальше уже как все обычные компиляторы
Вывод данных работающего скрипта клиенту идет по ходу их поступлений, если не указано, на необходимость их буферизации.
silicoid, А разработчики то вкурсе, что у них не интепритатор а компилятор ?)
http://php.net/manual/ru/preface.php
У Вас очень интересная теория работы php :) про пересборку/линковку
PHP - это не интерпретатор, как многие думают, а компилятор.
Самое интересное, что так думают практически все. Кроме silicoidа. Ну не совсем так, правда. На самом деле, PHP - это не интерпретатор и не компилятор. Это язык программирования. А интерпретатор у него Zend.
PHP - это не интерпретатор, как многие думают, а компилятор. Документ компилируется, линкуется и хранится в бинарном виде,
если исходник меняется (хэш и/или дата обновления) то происходит перекомпиляция / пересборка бинарника, а после этого уже исполнение.
т.о. крайне не рекомендуется писать велосипеды вида
Ну а дальше уже как все обычные компиляторы
Вывод данных работающего скрипта клиенту идет по ходу их поступлений, если не указано, на необходимость их буферизации.
Вы не правы.
PHP - это язык програмимрования. Интерпретатор у него, как говорили выше Zend. Перекомпиляция, как вы ее называете, происходит каждый раз если не установлен opcache.
Касательно вопроса ТС - страница может собираться частями, если отдаете ее по ходу выполнения частями (используя несколько раз echo, print и т.д.) и если не включена буферизация. Вобщем все зависит от вашей реализации.
Mobiaaa, Интерпретатор производит проверку постоянно, на лету. Компилятор - один раз, собирая из того, что наваял программист что-то, удобоваримое для машинной обработки.
Официально, PHP называется "интерпретатор компилирующего типа" см вики
но наши эксперименты, которые проводились в далеком 2012м говорят, что байткод, практически полностью состоит из машкодов
---------- Добавлено 30.05.2018 в 14:48 ----------
MkrtElion, я поправлю. Перекомпиляция происходит постоянно, если php установлен как CGI
если он установлен как сервис, перекомпиляция происходит один раз. После чего байткод - будет висеть в памяти
логично, что при работе как CGI опкеш не работает
Ибо процесс умирает после работы, вместе с байткодом
Спасибо за ответы, но теперь мне еще хуже стало это понять, я наивно думал, что он PHP движок считывает скрипт целиком все имеющиеся файлы все где есть php код, генерирует обычную HTML страницу полностью подготавливая её и отдает её целиком браузеру по запросу клиента…
Dmitriy_2014, вы вообще с какой целью интересовались?
наверное у вас есть проблема и вы решили зайти к ней с огорода
Dmitriy_2014, По умолчанию всё так и есть
Скрипт выполняется, а потом всё одним "рывком" отдаётся в браузер