• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

ob_start(); nedir? nasıl ve ne zaman kullanılır ?

Konuyu Okuyan Kişiler (0)

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#1
Merhaba,

SEO'ya uygun linkler üretmek için istemediğim tarz linkleri PHP'de header fonksiyonu ile uygun adrese yönlendiriyorum. Fakat header kullanırken en başa ob_start(); yazmazsak header already sent on .. gibi bir hata görüyorsunuz. Neticesinde ob_start(); yazdık ve sorun çözüldü ama ob_start(); nedir ? neden kullanılır ? sayfa açılış hızını ve performansı etkiler mi ? ob_end_flush(); veya ob_flush(); ile birlikte mi kullanılması gerekir, yoksa tek başına kullanılabilir mi ? İnternette adam akıllı Türkçe kaynak bulamadım bu konuda ayrıntılı cevap umarım bizlere bundan sonra yol gösterir..

Teşekkürler
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#2
Anladığım kadarıyla, Sayfanın direk sonuçlanmasını engelliyor. Tüm işlemler bittik den sonra ekrana basma işlemini gerçekleştiriyor. Buda header ile İlgili sorun çıkmasını engelliyor (Header kendinden önce bir şey ekrana basılırsa, Hata verir).
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#3
Peki site hizinda bir etkisi olur mu ? Bir de ob_flush(); ile sonlandirmak zorunda miyiz ? Bazi yerlerde oyle tavsiyelerde bulunmuslar ama ob_flush() veya ob_end_flush() yapmadan da header yonlendirme calisiyor..
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#4
Peki site hizinda bir etkisi olur mu ? Bir de ob_flush(); ile sonlandirmak zorunda miyiz ? Bazi yerlerde oyle tavsiyelerde bulunmuslar ama ob_flush() veya ob_end_flush() yapmadan da header yonlendirme calisiyor..
Header yönlendirme kodunun tam üstüne

PHP:
echo "bla bla";
Yerleştirin bakalım çalışacak mı :)
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#5
O zaman calismiyor :) ama neden calismiyor onu cozemedim iste :) mantigini hic cozemedim bu header / ob_start() olayinin
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#6
O zaman calismiyor :) ama neden calismiyor onu cozemedim iste :) mantigini hic cozemedim bu header / ob_start() olayinin
Headera bilgi tanımlıyor çünkü, Ondan önce veri basılmaması gerekir. Şöyle düşün ; Antenin binanın en altınamı koyulması lazım en üstünemi ? Eğer antenin üzerine bina dikersen, Çekmeyecektir. Çünkü üstte olması gerekir.
 

ctis

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
65
Beğeniler
0
#7
Headera bilgi tanımlıyor çünkü, Ondan önce veri basılmaması gerekir. Şöyle düşün ; Antenin binanın en altınamı koyulması lazım en üstünemi ? Eğer antenin üzerine bina dikersen, Çekmeyecektir. Çünkü üstte olması gerekir.
Peki burada ob_start(); in rolu nedir ?
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#8
Peki burada ob_start(); in rolu nedir ?
Daha önce söylemiştim

Sayfanın direk sonuçlanmasını engelliyor. Tüm işlemler bittik den sonra ekrana basma işlemini gerçekleştiriyor. Buda header ile İlgili sorun çıkmasını engelliyor (Header kendinden önce bir şey ekrana basılırsa, Hata verir).
echo direk ekrana basmaz, Sayfa bitince basar. Header tanımlanmış olur yani.