PHP ve XCache ile resimleri tampona almak
Üzerinde bir kaç gündür çalıştığım bir konu hakkında yazacağım.
Öncelikle "XCache ne demek, tampon ne demek ?" diyenler; bu yazıya hazırlık olarak yazdığım, önceki yazımı okusunlar. "PHP nedir ?" diyenlere ise sözüm yok ![]()
PHP ile resimleri tampona almak beni oldukça yordu. Çünkü PHP ile resimleri birer stringe dönüştürmenin yolunu bulamadım. Onun için zor bir yöntem deniyorum, resimleri önce ekrana basıyorum, sonra ekrandakileri stringe alıyorum.
Tabi bahsettiğimiz resimleri doğrudan dosyadan alabiliyorsak durumlar değişir, ancak resimleri dosyadan aldıktan sonra üzerinde oynama yapıp ekrana basacağız.
Resimleri dosyadan alıp, üzerinde oynayıp sonra yine dosyaya kaydedip, o dosyadan string olarak okuyacaklar ise hiç XCache işine bulaşmasınlar, yaptıklarının astarı yüzünden pahalı olur.
ob_start(); // ekrana bilgi buradan itibaren basılmaya başlar. if (xcache_isset("resim")){ // tamponda "resim" verisi var mı yok mu ? $cacheIm = imagecreatefromstring(base64_decode(xcache_get("resim"))); // resmi "resim" isimli tampondan alır oluşturur imagejpeg($cacheIm); // resmi ekrana basar imagedestroy($cacheIm); // resmi yok eder, ekrana bastığımız için işimiz yok. exit(); // programımızın çalışmasını sonlandırır, diğer tarafı else içerisine almadığımız için sonlandırmalıyız. } /* Bu kısımda resmimizi oluşturup üzerinde oynamalar yapıyoruz .*/ imagejpeg($new_im); // resmi ekrana basar xcache_set("resim",base64_encode(ob_get_contents()),10); // ekrana basılanları 10 saniyeliğine "resim" isimli tampona atar imagedestroy($new_im); // resmi yok eder.
ob_get_contents(); fonksiyonu o ana kadar ekrana basılmış olan veriyi string olarak almamıza yarar.