İş prosesində php-skriptlər ssenari icra olunduqda nəticələri göstərə bilər və ya ssenarinin tam icrasını və ssenarinin tamamlanmasını gözləyərək məlumat toplaya bilər. Bu variantlardan birinin seçilməsi, php tərcüməçi parametrlərində verilənlərin çıxışı buferləşdirilməsindən məsul olan dəyişənə verilən qiymətdən asılıdır. Dəyişdirməyin bir neçə yolu var.
Təlimat
Addım 1
Serverdə və ya saytda işləyən bütün php skriptləri üçün çıxış tamponunu söndürməyiniz lazımdırsa, bunun ən düzgün yolu php.ini faylıdır. Hər bir skripti işə salarkən, php dilinin tərcüməçisi bu konfiqurasiya sənədindəki parametrləri oxuyur, buna görə də skriptlərin çıxışının buferləşdirilməsini aradan qaldırmaq üçün təlimatı yerləşdirmək ən optimal həlldir. Faylı istənilən mətn redaktorunda açın və output_buffering adlı direktivi tapmaq üçün axtarış dialoqundan istifadə edin. Dəyəri ya tam, ya da məntiqi (Açıq və ya Qapalı) dəyişən ola bilər, buna görə standart dəyər əvəzinə Off və ya 0 daxil edin. Bu təlimat konfiqurasiya sənədində deyilsə, girişlərin sonuna əlavə bir sətir əlavə edin:
output_buffering = Qapalı
Addım 2
Ayrı bir qovluğun və ya bir alt alt qovluğun skriptləri üçün çıktının buferləşdirilməsini ləğv etmək lazımdırsa, bunu htaccess faylı vasitəsilə etmək daha yaxşıdır. İstədiyiniz qovluqda tapın və mətn redaktorunda açın. Hələ belə bir fayl yoxdursa, yenisini yaradın. Əlavə edilməli olan direktiv əvvəlki addımda təsvir edilənə bənzəyir, lakin bundan əvvəl bunun php parametrlərindən biri olduğuna dair bir işarəni qoymalısınız. Bütün sətir belə olmalıdır:
php_flag output_buffering bağlıdır
Yaradılan htaccess sənədini direktivin icra ediləcəyi kataloqu iyerarxiyasının üst qovluğuna yerləşdirin.
Addım 3
Tək bir php skriptində buferləşdirməni deaktiv etmək üçün bu dilin daxili funksiyalarından birini istifadə edin. ob_get_flush () tamponun cari məzmununu qaytarır, sonra sıfırlayır və çıxış tamponunu söndürür. ob_end_flush () eyni şeyi edir, lakin buferin cari məzmununu onu çağıran dəyişənə qaytarmır, ancaq çıxış cihazına göndərir. Ob_end_clean () tamponlamanı bağlamadan əvvəl cari məlumatları sadəcə silir. Bu funksiyalardan birini istifadə edərkən tamponlamanı yenidən açmağı unutmayın - ob_start () funksiyası bunun üçündür.