Uzun br aradan sonra güzel bir yazıyla geri dönüş yapayım dedim. Bu kez konumuz ne C# nede ASP olacak . Şimdi PHP yi diğer web yazılım dillerinden ayıran birçok güzellikten biri olan template kullanabilme yeteneğini anlatmaya çalışacağım. Önce template kavramı üzerine biraz laf kalabalığı yapalım.
Template nedir ?
Template bir web sitesinin yada yazılımın birden fazla arayüzden herhangi biri ile çalışabilmesini sağlayan koddan ayrılmış görsel dosyalarıdır.
PHP de template nasıl kullanılır ?
PHP de dahil birçok web yazılım dilinde template mantığı css,image,js dosyaları ile kod dosyalarını ayırıp bir parametre ile bunu değişken kılmak en basit yoldu ancak her ne olursa olsun bu ayrım tamamen keskin çizgilere sahip olamıyordu örneğin kod içinde tanımladığımız bir table da kullandığımız class eğer parametre ile tanımladığımız css dosyası içinde bulunmuyorsa bu başımıza iş açabiliyordu. Bu şekilde çalışabilmek için her oluşturduğumuz template te oldukça hassas davranmak gerekiyordu. Ancak Smarty ve buna benzer template motorları bu yükü üzerimizden almayı başardılar.
Merhaba,
Mümkün olduğunca detaylı bir şekilde anlatarak, verilen bir kelimeyi harflerine nasıl ayıracağımızı göstereceğim. str_split() fonksiyonu ile bu işlemi kolaylıkla yapabilirsiniz ama ben bu yazıda esasen php'de metin işlemlerinin ve substr() fonksiyonunun mantığını öğretmeyi amaçlıyorum. Bu yüzden bu fonksiyonu elle yazacağız :)
Öncelikle bir yapılacaklar listesi hazırlayalım.
Şimdi ilk önce kelimenin harf sayısını öğrenmemiz gerekiyor. Bunun için PHP'nin strlen() fonksiyonunu kullanacağız. Örnek olarak ERAY kelimesinin harf sayısına bakalım.
|
|
Merhabalar,
Sorumuz : Veritabanına bigirlmiş bir kayıt var ve biz bu kayıtın tarih ve saat bilgisine "07-07-2010" ve "12:00" şeklinde sahibiz. Peki bu kayıtlardan şu anki zamandan 15 dakika önce oluşturulmuş (eskimiş olanı) olanı nasıl otomatik olarak sildirebiliriz?
Amaç : Önceki girilmiş bir zaman ile şimdiki zamanın karşılaştırılarak aradaki farka göre işlem yaptırma.
Kod:
|
|
1-Bir İfadedeki Özel Kelimeleri Vurgulamak
Bazen, örneğin, arama sonuçları gösterileceği zaman, aranan kelimeleri vurgulamak müthiş bir fikirdir. Aşağıdaki foksiyon bunu gerşekten yapabiliyor.
|
|
Merhaba,
Bu yazımda mümkün olduğunca uzun yoldan basit bir filtreleme / sansür sistemi yazarak size PHP'de metin işlemlerinin mantığını ve birkaç dosya işlemleri fonksiyonunu göstermeyi amaçlıyorum.
Önce yapılacaklar listemizi çıkaralım :
|
|
Şimdi ilk olarak sansür uygulayacağımız cümleyi belirleyelim:
|
|
|
|

Zend Framework, polimorfik yapısı ile pek sevdiğimiz bir PHP framework. Kullandığı componentler için sağladığı interface'ler sayesinde, o component'in yaptığı işi, başka bir araç ile yapmak çok kolay oluyor.
Zend'in mevcut template engine'ini pek sevmeyebilirsiniz. Html kodu arasında <?php etiketi görmek pek tatsız olabiliyor. Zend, polimorfik yapısı ile template engine'ini istediğiniz herhangi bir template engine olarak değiştirmenize izin veriyor.
Smarty ise gönüllerde taht kurmuş, daha iyi alternatifleri varmış gibi dursa da PHP dünyasında en çok kullanılan template engine.
Bu yazıda, işini iyi yapan bu iki aracın, ortak bir şekilde nasıl kullanılacağınız anlatacağım.
Bunu yapmak için yeniden implemente etmemiz gereken component ise Zend_Controller_Action_Helper_ViewRenderer 'ı Zend_View_Abstract sınıfından türeyen kendi implemente ettiğimiz Smarty sınıfından türeyen bir obje ile değiştireceğiz.
Bunun için aşağıdaki gibi bir sınıf yazabiliriz.
Bazı zamanlarda kullanıcının ip'sini öğrenmemiz gerekebilir. Çok basit şekilde;
Request.ServerVariables("REMOTE_ADDR")
bu kodu kullanırız. Ancak bazı durumlar olur ki kullanıcı proxy vb. değiştirmelerle gerçek ip'sini farklı gösterebilir. Böyle bir durumda;
--------------------
VB.NET için;
Dim _ip As String = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If (_ip = "" Or _ip.ToLower = "unknown") Then _ _ip = Request.ServerVariables("REMOTE_ADDR")
--------------------
C# için;
String _ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Bu anlatımı daha iyi anlayabilmek için biraz HTML DOM bilgisi gerekiyor.
Amaç:
Veri çekilmesi gereken adreste biraz dolaşıp bize gerekli alt sayfalardaki gerekli verileri çekmek.
Veri çekilmesi istenen adres: http://www.phpsorunu.com/2010/06/
Gerekli olan kütüphane veya classlar :
PHP Simple HTML DOM Parser
Anlatım :
Çekilmek istenen veri adresteki sayfadaki wordpress konuları
Merhaba arkadaÅŸlar,
PHP ile günleri veya ayları yazdırdığımızda ekrana çıktısı İngilizce olarak gelmektedir. Fakat PHP nin str_replace(); fonksiyonunu kullanarak İngilizce gelen verileri Türkçe olarak değiştirip ekrana yazdırarak tamamen Türkçe tarih elde edebiliriz..Gelelim yapılışına:
Temel mantık array içindeki verilerin yerlerini değiştirmek..İlk önce array içinde aynı sırada İnglizce ve Türkçe tarihleri değişkene aktardık.Sonra yine bir değişkene tarih yazdırmak için date("d-M-Y");
fonksiyonunu atadık.En son str_replace(); ile gelen verileri değiştirdik.
Uzun zamandır kullandığım ve sonuçlarından memnun kaldığım bir php fonksiyonunu sizlerle paylaşmak istedim. Php ile script yazmaya başlayanların oldukça işine yarayacağından eminim.
Fonksiyonumuz kullanıcının modeminin servis sağlayıcısından aldığı gerçek ip adresini göstermektedir. Hatta şirket hatlarında kullanılan 10.10.114.xxx veya 192.168.xxx.xxx tarzı ip adresletini bile göstermektedir. İnternet camiasında proxy denen meretten kurtulmanın yolu hiçbir zaman olmadığı gibi bunda da yoktur sanırım ama yine de fonksiyonun sonuçları tatmin edici durumda.
Fonksyion Kodumuz :
|
|
|
|
|
|
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.