Ana sayfa › Forumlar › PROGRAMLAMA › PHP › PHP – Metin Düzenleme ve Düzenli İfadeler
- Bu konu 2 yanıt içerir, 3 izleyen vardır ve en son 12 yıl 8 ay önce Fuat DAĞDELEN tarafından güncellenmiştir.
-
YazarYazılar
-
27 Nisan 2012: 08:08 #13237özgürİzleyici
PHP – Metin Düzenleme ve Düzenli İfadeler
substr($degisken,8);
substr ($degisken, 8, 20);
substr($degisken, -9);
trim ($degisken);
strlen($degisken);
strip_tags($metin) =>> (Metin içersindeki html ve php kodlarını atar)
strtolower($metin) =>> (Küçük harfe çevirir)
strtoupper($metin) =>> (Büyük harfe çevirir)
ucwords($metin) =>> (Sadece Baş Harfleri büyük yapar)
ucfirst($metin) =>>(Sadece cümlenin baş harflerini büyük yapar)
substr($metin,3,5) =>>(3. karekterden itibaren 5 karekter alır)
strpos($metin,?@?) =>>(İstediğim karekterin yerini söyler)
strstr($metin,?@?) =>>(İstediğim karekterden sonraki karekterleri alır)
substr_count($metin,?@?) =>> (İstediğim karekterden kaçtane olduğunu yazar)$bolumler=explode(?,?,$metin) =>> ( (,) ler arasındaki ifadeleri dizi değişkenine aktarır)
implode(?,?,$bolumlar?) =>> ( Dizideki değerleri (,) işareti ile bağlar)printf() ve sprintf()
Bu fonksiyonları bir değişkeni biçimlendirmekte kullanırız. Birincisinin elde ettiği sonuç ziyaretçinin Browser penceresine gönderilir; ikincisin elde ettiği sonuç ise değer olarak döner. Önce bu fonksiyonlarla kullanabileceğimiz biçim parametrelerini sıralayalım:
% Yüzde işareti. Yanında biçim parametresi gerekmez.
b Değişken tamsayı olarak işlem görür ve ikili sayı olarak döner.
c Değişken tamsayı olarak işlem görür ve ASCII değerinin karşılığı olan karakter olarak döner.
d Değişken tamsayı olarak işlem görür ve ondalık sayı olarak döner.
f Değişken kesirli sayı olarak işlem görür ve kesirli sayı olarak döner.
o Değişken tamsayı olarak işlem görür ve sekiz-tabanlı (octal) sayı olarak döner.
s Değişken alfanümerik olarak işlem görür ve alfanümerik olarak döner.
x Değişken tamsayı olarak işlem görür ve 16 tabanlı (hexadecimal) sayı olarak döner. (Harfler, küçük harf olur).
X Değişken tamsayı olarak işlem görür ve 16 tabanlı (hexadecimal) sayı olarak döner. (Harfler, büyük harf olur).Her iki fonksiyonun da kullanılış biçimi aynıdır:
printf( “biçim” , $degisken1, $degisken2, … “metin” );
Burada “biçim” yerine yukarıdaki biçim parametlerini yazarız. Biçim parametrelerinin önüne yüzde işareti konur; en fazla beş belirleyici özellik alabilir. Yukarıdaki tür belirten biçimlendirme parametlerine ek olarak diğer özellikler şöyle sıralanır:
Doldurma karakteri: tek tırnak ve onu izleyen bir karakterden oluşur.
Hizalama: Eksi işaretinin varalığı yazının sola, yokluğu ise sağa hizalanma anlamına gelir.
En az-en çok uzunluk: Sayı-nokta-sayı (örneğin 40.40 gibi) yazılır; birinci sayı azamî, ikinci sayı asgarî uzunluğu belirtir.Bu üç özelliğe bir örnek verelim.Bir değişkenin değerinin sonuna yanyana yeteri kadar nokta konarak uzunluğunun 40 karaktere çıkartılmasını şu deyimle sağlarız:
$degisken = ” İyilik üzerine ” ;
printf( “%”.-40.40s” , $degisken);Burada “%”.-40.40s” şeklindeki biçim komutu, Browser penceresinde şu görüntüyü oluşturur:
“İyilik üzerine……………………..”
Burada “İyilik üzerine” değeri 14 karakter olduğu için, sonuna 26 adet nokta eklenmiş ve bütün değer sola hizalanmış olacaktır. Şu komut ise iki değişkenin değerini ve vereceğimiz bir metni aynı satıra yazdıracaktır:$degisken1 = ” İyilik üzerine ” ;
$degisken2 = ” İyilik üzerine ” ;
$metin = “
\n” ;
printf( “%”.-40.40s%”.2d%s” , $degisken1, $degisken2, $metin);Bu komut Browser penceresinde şu görüntüyü oluşturur:
“İyilik üzerine……………………..86”
Burada eklediğimiz ikinci “%”.2d” şeklineki biçim komutu ile, ikinci değişkenin değeri, en az sıfır en çok iki adet nokta ile doldurulmak ve sağa hizalanarak ondalık sayı olarak görüntülenmek üzere biçimlendiriliyor. Üçüncü biçim komutu olan “%s” ise üçüncü değişkenin sadece alfanümerik olarak muamele görmesini sağlıyor. Biçim komutlarının arasında boşluk bulunmaması, ait oldukları değişken değerlerinin de aralarına boşluk konmamasına sebep oluyor. Üçüncü değişkenin etkisini, kağıt üzerinde göremiyoruz; ancak bu Browser penceresinde bundan sonra gelecek unsurların bir satır aşağı kaymasını sağlayacaktır.Dördüncü biçim özelliği, ondalık sayıların virgülden (veya nokdtadan) sonra ondalık bölümünün kaç hane olacağını belirler. Bunu da bir örnekle görelim:
$degisken = ” 124 ” ;
printf( “Değeri (ABD) $%.2f” , $degisken);Bu biçimlendirme komutu da Browser penceresine şu yazıyı yazdırır:
Değeri (ABD) $124.00str_replace ()
str_replace(““;
echo $hata;
include(“kd_hata_halinde.htm”);
exit;
}Program, bu örnekte $adres değişkeninde kayıtlı değerin içinde aradığı sıralamayı bulursa, eşleşen değeri $email adlı yeni bir değişkene yazacak ve if sınavının sonucu doğru olacaktır. Bu sıralamaya uygun bir değer bulunamazsa, if sınavı else deyimine atlayacak ve bir hata mesajı üretilerek, bu program durdurulacaktır.
ereg_replace() ve eregi_replace()
Gördüğümüz gibi, ereg() arattığımız karakter sıralanışı bulunduğu taktirde doğru, bulamadığı taktirde yanlış karşılığı verdikten sonraduruyor! Oysa kimi zaman arattığımız ve bulunan değerin başka bir değierle değiştirilmesi gerekebilir. Bunun için ereg_replace() ve eregi_replace() fonksiyonlarını kullanırıız:
ereg_replace(“eşleştirilecek_sıra” , yeni_metin , $kaynak);
Fonksiyonun aradığımız eşleştirmeyi bulursa, bu değerin yerine verdiğimiz yeni metni koyacaktır; yeni metni bir değişkenin değeri olarak da verebiliriz. Uygulama örneği için yine konuk defteri örneğine dönelim. Ziyaretçilerimiz kimi zaman yanlışlıkla, kimi zaman pek de iyi niyet sonucu olmadan, kendilerinden beklediğimiz isim, adres ve mesaj yerine sunucu veya başka ziyaretçilerin Browser programları tarafından kod gibi algılanacak metinler yazabilirler. Burada sadece bu tür zararlı metinlerin genellikle programlarda bulunması gereken karakterler içerdiğini söylemekle yetinelim. Bu tür karakterlerin başında < ve > işaretleri bulunur! Dolayısıyla, biz de ziyaretçimizden gelecek verilerin yazıldığı değişkenlerin değerlerinde bu işaretleri aratabilir ve bunları içi boş bir alfanümerik değer ile değiştirebilir; yani silebilir. Zararlı olabilecek kodların arasında daha bir çok karakter bulunabilir; ancak Script diliyle yazılması gereken bu kodlardan < ve > işaretlerini kaldırılması kodları işlemez hale getireceği için, şu aşağıdaki örnek yeterli olabilir:
$adi = ereg_replace(“<","",$adi); $adi = ereg_replace(">“,””,$adi);
$adres = ereg_replace(“<","",$adres); $adres = ereg_replace(">“,””,$adres);
$mesaj = ereg_replace(“<","",$mesaj); $mesaj = ereg_replace(">“,””,$mesaj);Burada ereg_replace() fonksiyonu, ziyaretçiden gelecek üç değişkenin değerlerinde < ve > işaretlerini aramakta onların yerine içi boş bir metin (“”) yazmaktardır.
split()
Düzenli İfade ile çalışan bu fonksiyon, vereceğimiz eşleştirme sıralamasını sınırlayıcı olarak kullanarak, belirteceğimiz değerde bulduğu değer parçalarını ayırır ve bunları ayrı ayrı bir dizi değişkenin elemanları olarak kaydeder. Bu fonksiyonu şöyle yazarız:
$yeni_dizi_değişken = split(“eşleştirilecek_sıra” , $kaynak, sınır_sayısı);
Fonksiyon, aradığı sıralamayı bulamazsa, false/yanlış sonucunu verir. Burada sınır sayısı olarak vereceğimiz rakam, oluşturulacak yeni dizi değişkene en fazla kaç eleman yazılmasını istediğimizi gösterir. Bu sayıyı vermezsek, PHP yeni dizi değişkenin gerektiği kadar elemana sahip olmasını sağlar. Bir örnek vererek, bu fonksiyonu nasıl kullanibileceğimizi görelim:
$metin = “İnsan sözüyle kendini gösterir, davranışlarıyla ruh halini aksettirir.”;
$aranan = ” “;
$yeni_dizi_değişken = split($aranan, $metin);
foreach ($yeni_dizi_değişken as $eleman) {
print “$eleman
“;
}Bu programda PHP, $metin değişkeninin içerdiği değerde $aranan değişkeninin içerdiği değeri, yani boşluğu, eşleştirilecek unsur olarak kullanacak ve $metin değişkeninin değerini boşluklarından parçalara ayıracaktır. Ayrılıcak her yeni parça, $yeni_dizi_değişken adlı değişkenin elemanları olarak atanacaktır. Programın geri kalan kısmı ise, bu yeni dizinin elemanlarını görüntülemekterdir.
sql_regcase()
İçinde büyük harf-küçük harf ayrımı olan bir değeri büyük harf-küçük harf ayrımı olmayan Düzenli İfadeler haline çevirir. Bu fonksiyon bizden Düzenli İfade almaz, tersine Düzenli İfade oluşturur. Örnek:
Bu program, Browser penceresine şu metni yazdırır:
[Ss][Öö][Zz][Ll][Ee][Rr]
27 Nisan 2012: 09:59 #13244BahadirÜyeteşekkürler.
27 Nisan 2012: 18:29 #13249Soğolasın
-
YazarYazılar
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.