• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کنترل خروجی ها یا output control
#1
خروجی هایی که ما به سمت کاربر مفرستیم به هر نحوی توسط آپاچی کنترل میشه.

در حال حاضر نیاز دارم خروجی هایی که به سمت کاربر مفرستم. زمانی که کاربر اونها رو دریافت کرد. مابقی رو ارسال کنم.
کمی جستجو کردم با دستورات ob_start(); برخوردم. آیا این کد همون چیزی هست که مد نظر من هست؟

کد پی‌اچ‌پی:
<?php

  ob_start
();

  
$FP fopen('text.avi'"rb");
  
fseek($FP);
  while(  !
feof($FP)  )
  {
    print(
fread($FP1024 ));
    
ob_flush();
    
flush();
    while ( 
ob_get_length() != )
    {
      
sleep(1);
    }    
  }

  
ob_end_flush();
?>

آیا زمانی که ما ob_flush(); را فراخوانی می کنیم. تا کامل داده ها به دست کاربر برسه انجام وظیفه میکنه؟ یعنی وقتی بافر رو خالی میکنه یعنی به دست کاربر رسیده؟
  پاسخ
تشکر شده توسط :
#2
با اینکار تمام خورجی ها در بافر سرور نگهداری میشه و در انتها با فراخونی تابع ob_end_flush یا رسیدن به انتهای برنامه برای کاربر ارسال میشه .اینجوری شما می تونین قبل از ارسال خروجی روی خروجی نظارت داشته باشین و اون رو فیلتر کنین و ....

این متن کپی از سایت php.net می باشد .
کد پی‌اچ‌پی:
ob_get_contents() - Return the contents of the output buffer
ob_end_clean
() - Clean (erasethe output buffer and turn off output buffering
ob_end_flush
() - Flush (sendthe output buffer and turn off output buffering
ob_implicit_flush
() - Turn implicit flush on/off
ob_gzhandler
() - ob_start callback function to gzip output buffer
ob_iconv_handler
() - Convert character encoding as output buffer handler
mb_output_handler
() - Callback function converts character encoding in output buffer
ob_tidyhandler
() - ob_start callback function to repair the buffer 
[php]
  پاسخ
تشکر شده توسط :
#3
هدف اصلی من این هست که بفهمم خروجی آیا به دست کاربر رسیده یا خیر اگر رسیده بعدی رو بفرستم.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان