«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2021/08/21 11:51:36  №2135174 1
image.png (22, 1057x123)
123x1057
image.png (27, 1058x169)
169x1058
Умоляю, расшифруйте что это значит. То что нужно опускать закрывающие теги если в файле только пхп это понятно. Но о каких http-загаловках после подключения к ответу сервера идет речь? Что за буферизацию и "конце частей ответа, сгенерированного подключаемыми файлами. "
Ответы: >>2135177 >>2135792
Аноним 2021/08/21 11:55:20  №2135177 2
>>2135174
Если у тебя начался вывод, то уже нельзя делать header, потому что пошло тело ответа.
Про буферизацию хуй знает.
Аноним 2021/08/21 21:35:45  №2135792 3
>>2135174

Если ты не знаешь, что такое HTTP-заголовки, то тебе надо подучить протокол HTTP и лучше понимать, как браузер взаимодействует с сервером, на котором запускается PHP скрипт. Прочти, например, этот урок: https://github.com/codedokode/pasta/blob/master/network/http.md

Когда ты генерируешь страницу и отдаешь ее в браузер, ты можешь перед ней добавить HTTP-заголовки. Заголовки нужны, чтобы сообщить браузеру о типе ответа или например чтобы ставить куки, или чтобы отдать содержимое не как страницу, а как файл для скачивания.

Когда твой PHP-скрипт генерирует ответ, то он сначала должен выдать HTTP-заголовки, если они нужны, а только потом выводить HTML-код страницы. Если ты вывел хоть один символ, то заголовки выдавать уже поздно.

Допустим, ты инклюдишь файл с таким содержанием:

<?php код ?> тут несколько пробелов

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

При подключении такого файла PHP выведет эти несколько пробелов. И значит ты не можешь уже отдавать заголовки.

Если ты не пользуешься заголовками, то тебе это не очень важно, но лучше сразу приучиться не ставить закрывающий тег.

----

Буферизация - это режим в PHP, когда выводимые через echo или другим способом данные не отправляются в браузер, а перехватываются и сохраняются в переменную. И ты с ними можешь делать что угодно. Например, ты можешь таким образом вырезать из HTML-кода лишние пробелы, чтобы уменьшить размер страницы.


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