Оба они, похоже, делают одно и то же: верните содержимое выходного буфера и удалите его обратно.
Какой из них я должен использовать?
Чтобы прямо попытаться ответить на ваш вопрос:
Если вы хотите снова начать буферизацию вывода после очистки буфера, тогда используйте 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 просто отбрасывает его.