Header fonksiyonu php sayfalarında üst bilgilerini tanımlamamızı sağlar. Örneğin php ile resim oluştururken resmin türünü jpg/png/gif header ile ile yaparız. Http üst bilginin nasıl elde ediği ile ilgili örnekler aşağıdadır. Başarılar.
fsockopen() :Bu fonksiyon iletişimi socket üzerinden sağlar. Yani web tarayıcı üzerinden bilgileri göndermez. Bu nedenle http bilgilerini biz yazacağız.
1 2 3 4 5 6 7 8 9 | $fp=fsockopen("localhost",80,$errno,$errstr,30); if(!$fp){ echo "$errstr $errno <br> \n"; }else{ $out="GET /http.php HTTP/1.1\r\n"; $out.="Host: localhost\r\n"; $out.="Connection: Close\r\n\r\n"; } fwrite($fp,$out); while(!feof($fp)){ echo fgets($fp,128)} fclose($fp); |
Aşağıdaki örnekte üst bilgi olarak web tarayıcısına içerik türünün pdf dökümanı olduğu bildiriliyor.İçerik tanımı (Content-Disponsition) ek olarak gönderilmiştir ve ekteki dosyanın adı blirtilmiştir. Örnekteki readfile() fonksiyonu bir dosyayı okuyarak bulunduğu yere yazar.
header(“Content-type: application/pdf”);
header(‘Content-Disposition: attachment; filename=”belge.pdf”‘);
readfile(‘belgelerim.pdf’);
Örnek fonksiyon:
1 2 3 4 5 6 7 8 | function belgeoku($belgetipi,$indirmeadi,$belgeyolu){ header("Content-type: aplication/".$belgetipi); header('Content-Disposition: attachment; filename="'.$indirmeadi.'"'); readfile($belgeyolu); } //Kullanımı belgeoku("pdf","yeniadi2.pdf","bb/belgelerim.pdf"); |
Expires: web tarayıcısına web sayfasının son kullanım tarihini veya kullanım süresi sonunu bildirir. Last-Modified : Sayfanın son düzenleme tarihi. Sayfayı ziyaret edilen gün ve zamana göre tarih ataması yapılır.
Cache-Control: Sunucu ve istgemci arasındaki istek/yanıt sıralamsı boyunca içeriğin önebelleğe alma mekanizmaları tarafından uyulması Zorunlu direktifleri belirtmek için kullanılır. Kullanılmassa web tarayıcıları tarafından sayfa ön belleğe alınır. Ceche-Control ile bu duruma müdahale edilir.
no-Cache (Pragma) : Web tarayıcısı ziyaret edilen web sayfasını Ön belleğe kaydedip etmeyeceği belirtir
1 2 3 4 5 | header("Expires: Mon, 26 Jul 2003 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); |
Fonksiyon:
1 2 3 4 5 6 7 | function noCache(){ header("Expires: Mon, 26 Jul 2003 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); } |
Apache server .htacces dosya desteği ile sunucunun yükünü hafifletmek için Cache control devreye sokabiliriz.
Bazı dosyaların ön belleğe alma süresini ayarlayarak bu dosyaların her seferinde sunucudan yeniden istemesini
önüne geçebiliriz.