flush
تابع «flush» برای ارسال فوری خروجی استفاده می شود. ارسال فوری خروجی یعنی بافر خروجی را همین الان بفرستیم. «بافر خروجی (Output Buffer)» صف موقتی متن هاست. این کار برای نمایش زودتر محتوا مفید است؛ مثل نشان دادن «در حال بارگذاری».
تعریف ساده flush
تابع flush() از سرور می خواهد خروجی بافر شده را بفرستد. اما گاهی پیکربندی سرور اجازه نمی دهد. بنابراین نتیجه همیشه قطعی نیست.
نمونه کاربرد flush
در این نمونه، ابتدا متن کافی تولید می کنیم تا مرورگر نشانش دهد. سپس با flush آن را فوراً می فرستیم و بعد بقیه را دیرتر چاپ می کنیم.
<?php
// برخی مرورگرها متن کوتاه را نمایش نمی دهند.
// با str_pad خروجی را به اندازه کافی طولانی می کنیم.
echo str_pad("Hello World!", 4096);
// با flush خروجی فعلی را همین الان بفرست.
flush();
// سه ثانیه صبر کن و ادامه را چاپ کن.
sleep(3);
echo "<br>";
echo "Hello World!";
?>
گام های عملی ارسال فوری خروجی
- مقداری متن چاپ کن تا بافر پرتر شود.
- تابع
flush()را صدا بزن. - در صورت نیاز ادامه خروجی را بعداً چاپ کن.
نکته: برخی مرورگرها متن کوتاه را نشان نمی دهند. با str_pad طول خروجی را بیشتر کن.
هشدار: پیکربندی سرور یا وب سرور شاید جلوی flush() را بگیرد. پس به آن صددرصد تکیه نکن.
پیوندهای داخلی مرتبط
- شروع بافر خروجی برای مدیریت ایجاد بافر.
- خالی کردن بافر خروجی برای ارسال بافر و ادامه بافرینگ.
جمع بندی سریع
- flush خروجی بافر شده را فوراً می فرستد.
- نمایش زودهنگام محتوا را ممکن می کند.
- همه جا تضمینی نیست؛ وابسته به سرور است.
- برای متن کوتاه، از str_pad کمک بگیر.