bu işi derslerden falan öğrenmediğimden kendi anladığım şekliyle sana anlatayım.

ob_start bi nevi sitenin ara belleğe alınmasını sağlar. mesela
echo "seyranli";

yazdığında ekrana yazar ancak
ob_start();
echo" seyranli"; denildiğinde ekrana herhangi bi yazı vermez, yok da saymaz tabi, onu saklar. sakladığını nasıl kullanıcam peki dersen,

$site=ob_get_content(); dediğin anda, ob_start ve ob_get_content() arasındaki her yazı site değişkenine atanır.

ne amaçla kullanırım dersen,
mesela bir tema.php dosyası hazırlar ve dizaynını yaparsın, ortaya bi yere echo $site; yazarsın. ardından tüm sayfalarını ob_start la başlayıp ob_get_content ve ob_end_clean ile bitirirsin, en altada inlucde("tema.php"); dersin, böylece sana has bi tema sistemi olur.

bazen header("...") gibi direk headera etki eden kodlarda
can not modify header information ile başlayan bir hata alırsın, işte üstte bulunan kodları ob start la tampona alıp, headerı güncelleyen kodun altına yazdırırsan herhangi bi sorunun kalmaz.

umarım faydam dokunur, kolay gelsin