Оба они, похоже, делают одно и то же: верните содержимое выходного буфера и удалите его обратно.
Какой из них я должен использовать?
Чтобы прямо попытаться ответить на ваш вопрос:
Если вы хотите снова начать буферизацию вывода после очистки буфера, тогда используйте ob_get_clean, так как буферизация вывода будет готова, не вернув ее обратно. (помните, что это можно использовать только в том случае, если в браузере не отображается текст, даже пробел). Таким образом, для более общих целей все мои книги программирования ошибочно относятся к ob_get_flush (как только один буфер для большинства скриптов)
ob_get_clean()
удаляет буфер (без печати) и возвращает его содержимое.
ob_get_flush()
печатает буфер, удаляет его и возвращает его содержимое.
ob_get_clean
просто вернет содержимое буфера и назначит его любой переменной, в которой вы хотите, но ничего не выводит.
ob_get_flush
с другой стороны, делает все, что делает ob_get_clean
, но также выводит содержимое.
Обе функции очищают выходной буфер, отключают буферизацию вывода и возвращают значение предыдущего буфера.
Однако ob_get_flush
сначала отправляет текущий буфер клиенту, тогда как ob_get_clean
просто отбрасывает его.