تابع ()ob در php
سلام چرا وقتی کد زیر رو با ob_flush می نویسم نتیجه ی ob_get_contentبرابرباbمیشه اما اگه همین کد فقط بجای ob_flushبنویبسیم ob_end_flushنتیجه محتویات بافر یا همونob_get_contentبرابر با abمیشه؟ مگه نبایدend_flushمحتویات قبلی از بین ببره ؟اما برعکس شده
۱ ۲ ۳ ۴ ۵ |
ob_start() echo 'a'; ob_flush(); echo 'b'; echo ob_get_content(); |
پاسخ ( 1 )
سلام
توضیحات رو مطالعه کنید:
توابع output boffer(ob) به صورت زیر هستند:
حالا مثال زیر رو در نظر بگیرید:
خروجی دستور بالا میشه:
حالا اگه بجای ob_end_clean از ob_end_flush استفاده کنید، بافر رو میبنده و مقدار موجود در داخل بافر رو چاپ میکنه.
و اگه ob_flush رو بعد از دستورات echo بنویسید، بافر رو ارسال و در خروجی نمایش میده.
موفق باشید.