نمایش نتایج: از شماره 1 تا 7 , از مجموع 7

موضوع: سوال در مورد ob_start

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #3
    عضو انجمن AtrafNet آواتار ها
    تاریخ عضویت
    Nov 2016
    نوشته ها
    259
    تشکر تشکر کرده 
    2,584
    تشکر تشکر شده 
    729
    تشکر شده در
    417 پست

    پیش فرض پاسخ : سوال در مورد ob_start

    سلام

    تابع ob_start حالت Output Buffering رو در PHP فعال میکنه و تا زمانی که این حالت فعال باشه تمامی خروجی های HTML چاپ شده (مثل توابع echo و print یا html معمولی و...) به جز HTTP Header ها نادیده گرفته میشن تا باعث ایجاد تداخل بین زمان ارسال HTTP Header ها و خروجی HTML نشن چون همونطور که شاید بدونید HTTP Header ها حتماً باید قبل از ارسال حتی یه حرف از خروجی HTML به مرورگر ارسال شده باشن و اگر مثلاً خروجی HTML ارسال شده باشه و شما بخواید بعدش با تابع header یک HTTP Header هم ارسال کنید با اخطار Header Already Sent در PHP مواجه میشید.

    تابع ob_start نیازمند اتمام با یکی از توابع ob_end_flush یا ob_end_clean هست تا حالت Output Buffering دوباره غیرفعال بشه اما بین این دو تابع که کار اتمام بافر رو انجام میدن تفاوتی که هست اینه که تابع ob_end_flush علاوه بر حذف بافر ذخیره شده از خروجی های که تا الان نادیده گرفته شدن، اون ها رو برای کاربر هم آخر سر ارسال میکنه ولی تابع ob_end_clean فقط بافر رو کاملاً از حافظه حذف میکنه و دیگه هیچی از خروجی هایی که حین فعال بودن حالت Output Buffering نادیده گرفته شدن برای کاربر ارسال نمیشن.


    منابع:
    http://php.net/manual/en/function.ob-start.php
    http://php.net/manual/en/function.ob-end-flush.php
    http://php.net/manual/en/function.ob-end-clean.php


    استفاده بی دلیل از این توابع فقط تنبلی برنامه نویس در خطایابی ها و موقعیت سنجی های مناسب برای ابتدا ارسال HTTP Header ها و سپس ارسال خروجی HTML رو می رسونه اما در بعضی موارد خاص ممکنه برنامه نویس حرفه ای هم نتونه زمان بندی مشخص رو به دلایلی پیش بینی کنه و مجبور میشه از این توابع که استثنایی رو براش ایجاد میکنن استفاده کنه.

  2. تعداد تشکر ها ازAtrafNet به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. تابع ob_start در php امنه؟
    توسط vahid13713 در انجمن PHP-MySQL
    پاسخ ها: 4
    آخرين نوشته: September 6th, 2016, 00:46
  2. پاسخ ها: 15
    آخرين نوشته: July 26th, 2012, 14:16
  3. سوال و راهنمایی در مورد دیتاسنتر Equinix سوئیس
    توسط logofun در انجمن سرور اختصاصی
    پاسخ ها: 69
    آخرين نوشته: July 27th, 2011, 23:32
  4. سوئیچینگ و سوئیچ سیسکو Switching
    توسط royalserver.ir در انجمن سیسکو Cisco
    پاسخ ها: 0
    آخرين نوشته: February 9th, 2011, 12:22

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •