Çıktı kontro sistemi ile verileri tamponlayarak bir çok işlemi yapabiliriz. Yani içerik oluşurken işlemlerin ekranan bir bir basılması yerine tüm iş ve işlemler bittikten sonra ekrana aktarılmasını sağlayabiliriz. Tamponlama işlemi header(), setcookie() ve session işlemlerini engellememektedir.
FONKSİYONLAR
ob_star() : Çıktı kontrolünü başlatarak içerik durur.
ob_end_flush() : Tamponlanan çıktı alarak, çıktı kontrolünü sonlandırır. Bu çağrıdan sonra tampon imha edilir.
ob_get_clean() : Tamponlanan içeri bir değişkene alır ekrana çıktı vermez. İçerik bir değişkene aktarılırken tamponda silinir.
ob_get_length() : Tampondaki içeriğin boyutunu alır.
ob_end_clean() : Tamponda biriken veri temizlendikten sonra çıktı kontrol sonlandırılır. Bu çağrıdan önce içeriği almak için ob_get_contents çağırılabilir.
ob_get_contents() : Tamponda biriken çıktıyı alır. Bir değişkene aktarılarak echo ile ekrana basılabliir veya dosyaya kayıt yapılabilir.
ob_gzhander : Tampondaki veriyi sıkıştırır. Aynı zamanda ob_start() fonksiyonu ile beraber kullanılır.
ob_flush() : Tamponun içeriğini gönderir. Bir değişkene aktarılabilir. Bu fonksiyon tamponu yok etmez.
flush() : Daha önce tamponlanmış veriyi tarayıcıya gönderir. Komuttan sonraki satırlarda çalışmaya devam eder.
ob_get_flush() : Önceden tamponlanmış içeriği alır, tamponlama sistemini sonlandırır.
ob_clean() : Tamponlamayı temizler.
ob_get_level() : Tamponlama sisteminin iç içe seviyesini döndürür.
ob_start() kullanımı:
1 2 3 | ob_start(); echo "caglarbostanci.com.tr"; ob_end_flush(); |
ob_start(“ob_gzhandler”) kullanımı:
1 2 3 4 5 6 | if(!ob_start("ob_gzhandler")) ob_start(); header("Content-type: text/css; charset=utf8"); header("Cache-Control: must-revalidate"); $sure=60 * 60 * 24;//24 saat $zaman="Expires: ".gmdate("D, d M Y H:i:s", time()+$sure)."GMT"; header($zaman); |
html:
1 2 3 4 5 | <html><head><titl>Css Dosya</title> <link rel="stylesheet" href="css.php2" type="text/css" /> </head> <body><div class="CCC">MERHABA DÜNYA</div></body> </html> |
Yukarıdaki kodlar sayfanın başına gelecek şekilde yerleştirin. Php tagın dan sonra ise css kodlarınızı yazın bu sayede sayfa dosya tarayıcının cache sine alınır. İlk çağırım dan sonra bir gün geçmişse tekrar çağırır.
ob_get_contents:
1 2 3 4 5 6 7 8 9 10 11 12 | ob_start(); echo <<<html <html><head><title>Css Dosya</title> <link rel="stylesheet" href="css.php2" type="text/css" /> </head> <body><div class="CCC">MERHABA DÜNYA</div></body> </html> html; $icerik=ob_get_contents(); ob_end_flush(); echo $icerik; //Ekrana iki kez MERHABA DÜNYA yazacak |
ob_get_clean:
1 2 3 4 5 6 7 8 9 10 11 12 | ob_start(); echo <<<html <html><head><title>Css Dosya</title> <link rel="stylesheet" href="css.php2" type="text/css" /> </head> <body><div class="CCC">MERHABA DÜNYA</div></body> </html> html; $icerik=ob_get_clean(); ob_end_flush(); echo $icerik; //Ekrana bir kez MERHABA DÜNYA yazacak |
ob_get_flush();
1 2 3 4 5 6 7 8 9 10 11 | echo <<<html <html><head><title>Css Dosya</title> <link rel="stylesheet" href="css.php2" type="text/css" /> </head> <body><div class="CCC">MERHABA DÜNYA</div></body> </html> html; $icerik=ob_get_flush(); ob_clean();// ob_start dan ob_clean() a kadar olan cerileri echo $icerik; } |
ob_get_level():
1 2 3 4 5 6 7 8 | ob_start(); //ob_end_flush(); ob_start(); //ob_end_flush(); ob_start(); ob_end_flush(); echo ob_get_level(); //Ekrana 2 yazacaktır |