ob_flush
تابع «ob_flush» برای «تخلیه بافر (Buffer Flush)» است. «بافر خروجی (Output Buffer)» یعنی محلی موقت برای متن ها. با ob_flush() محتوا را می فرستی و محتوای همان بافر خالی می شود؛ اما خود بافر هنوز باز می ماند.
تعریف ساده و کاربرد روزمره
تابع ob_flush() محتوای بالاترین بافر را می فرستد و خالی می کند. سپس، می توانی باز هم در همان بافر بنویسی. مثل تخلیه نیمه راهیِ صف بوفه در مدرسه.
نمونه کد: تخلیه بافر بدون پایان دادن
گام ها: بافر را شروع کن، متن بفرست، تخلیه کن، سپس بافر را پاک کن.
<?php
ob_start();
echo "This output will be sent to the browser";
ob_flush();
echo "This output will not be sent to the browser";
ob_end_clean();
?>
گام های عملی سریع
- با
ob_start()بافر خروجی را فعال کن. - با
echoمحتوای اولیه را تولید کن. - با
ob_flush()محتوا را بفرست و بافر را خالی کن. - در صورت نیاز، مرحله بعدی را در همان بافر بنویس.
- در پایان، با
ob_end_clean()یاob_end_flush()جمع بندی کن.
نکته: ob_flush() بافر را نمی بندد؛ فقط محتوا را می فرستد و خالی می کند.
هشدار: اگر چند بافر تودرتو داری، فقط بالایی تخلیه می شود. ترتیب را رعایت کن.
پیوندهای داخلی
- تخلیه بافر ob_flush صفحه همین تابع و توضیحات تکمیلی.
- پایان و ارسال با ob_end_flush برای پایان بافر همراه با ارسال.
- پاک کردن بافر با ob_clean بدون ارسال محتوا.
جمع بندی سریع
- بافر را تخلیه می کند، ولی نمی بندد.
- برای استریم تدریجی خروجی مفید است.
- در بافرهای تودرتو، فقط بالایی اثر می گیرد.
- در پایان، یکی از end ها را اجرا کن.