İletişim
Yardım
Bugünki Mesajlar
Ajanda
Üye Listesi
Kayıt ol
Home

Navigation
Geri git   DelikanForum.NET > BILGISAYAR-INTERNET / GRAFIK-WEB > Html - PHP - SQL
Cevapla
 
LinkBack Seçenekler

  #1
Alt 08.04.2007, 12:33
 
Üyelik tarihi: 02.01.2006
Mesajlar: 90
Konulara Teşekkür etti: 0
0 Teşekkür aldı 0 Mesajlar için
preg_match() ve regexpe Giriş

preg_match() Perl Uyumlu Düzenli Ifadeler (PCRE) fonksiyonlarindan biridir. Bu fonksiyon programciya
metin isleme konusunda diger metin fonksiyonlarindan daha çok esneklik saglar.

Preg_match() düzenli ifadeler kullanarak bir metin blogunu baska bir metnin içinde bulmak için
kullanilir.

Preg_match() 3 tane ifadeye ihtiyaç duyar. Bunlar
1. Düzenli ifade (regex)
2. Kaynak metin
3. Bir dizi degisken

Preg_match() sonuç olarak eslesen bir ifade varsa 1, eslesen bir ifade bulunamazsa 0 döndürür.

PHP- Kodu:
<?php $kaynak"Michael Jordan is a great player"
if (
preg_match"/J.r/"$kaynak$dizi)) 
print 
$dizi[0]
// Ekrana Jor yazdirir ?>
Burada düzenli ifademiz "/J.r/" ve metin içerisinde önce J, onu takip eden herhangi bir (1)
karakter (.) ve daha sonra bir r ariyor. Slash isaretleri ise (/) delimiter olarak adlandirilirlar
ve düzenli ifademizin sinirlarini belirlerler. Bir diger örnek ile devam edelim.

PHP- Kodu:
<?php $kaynak "Michael Jordan is a great player"
if ( 
preg_match"/J.*n/"$kaynak$dizi ) )  
print 
$dizi[0]
// Ekrana Jordan yazdirir ?>
Bu örnekte ise önce bir J, ardinda herhangi bir (1) karakter, ardindan herhangi bir oranda herhangi
bir karakter ve son olarak da bir n ariyoruz metnimizin içinde. Bu durumda .* için "herhangi bir
oranda herhangi bir karakter" diyebiliriz.

Zaman zaman * yerine + kullanmak da tercih edilebilir. + "bir veya daha fazla karakter"
manasindadir. + ve * arasindaki fark ise +'nın 0'ı da içermesidir.
".*" = >=1
"+" = >=0

Düzenli ifadeler için açgözlüdür denebilir. Çünkü düzenli ifadeler aramanin ilk ve son sonucu
arasindaki her seyi bulmak isterler.


PHP- Kodu:
<?php $metin"string strong big stung"
If ( 
preg_match"/s.*g/"$metin$dizi) ) 
Print 
$dizi[0]; 
// Ekrana string strong big stung yazdirir ?>
Eger sadece ilk bulunan ifadeyi istiyorsak bir ? eklememiz gerekir.

PHP- Kodu:
<?php $metin"string strong big stung"
If ( 
preg_match"/s.*?g/"$metin$dizi) ) 
Print 
$dizi[0]; 
// Ekrana string yazdirir ?>
Bir metin içerisinde bizim kriterlerimize uygun olan tüm degerleri bir dizi içine atmak istersek
preg_match_all() fonksiyonunu kullanmamiz gerekir.

PHP- Kodu:
<?php $metin"string strong big stung"
If ( 
preg_match_all"/s.*?g/"$metin$dizi) ) 
Echo 
"<pre>"
Print 
var_dump($dizi); 
Echo 
"</pre>";   
/* Ekrana 
array(1) { 
  [0]=>   
array(3) {     
[0]=>     
string(6) "string"     
[1]=>     
string(6) "strong"     
[2]=>    
 string(5) "stung"   


Yazdirir */ 
?>
Ayrica düzenli ifadeler içinde verilerin türlerini ifade eden karakterler kullanarak belirli
karakterleri arayabiliriz.

PHP- Kodu:
 <?php $metin"Bugün 06-01-05";  
If ( 
preg_match("/\d*-\d*-\d*/"$metin$dizi))  
Print 
$dizi[0];  
//Ekrana 06-01-05 yazdirir ?>
Burada aramada \d ondalik rakami ifade eder. Düzenli ifadelerle arama yaparken kullanilabilen veri
türleri ve içerdikleri degerler asagidaki listede gösterilmistir.

Ifade Tür Içerigi
\d Ondalik Sayi [0-9]
\D Ondalik olmayan herhangi bir karakter [^0-9]
\s Bosluk karakter [\t\n\r\f]
\S Bosluk karakteri disindaki herhangi bir karakter [^ \t\n\r\f]
\w "word" karakter [a-zA-Z0-9_]
\W "non-word" karakter [^a-zA-Z0-9_]
cengaver1 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
  #2
Alt 08.04.2007, 16:49
 
Üyelik tarihi: 02.01.2006
Mesajlar: 90
Konulara Teşekkür etti: 0
0 Teşekkür aldı 0 Mesajlar için

tabi bu alintiladigim yazida biraz basit giris olmus..eger sorunuz olursa elimden geldigince yardimci olamaya calisirim..

ayrica perl yani sira unix konsolesinde kullanilan komutlarda kullanilabilinir..
cengaver1 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
  #3
Alt 09.04.2007, 06:34
 
SeyFull@H - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 29.07.2005
Mesajlar: 980
Konulara Teşekkür etti: 3
7 Teşekkür aldı 4 Mesajlar için

saolasin abim,text formatlama bana hep cok karisik gelir,böyle sagdan soldan hep hazir kodlar alirim.

preg_match i tamamlayan en güzel function ise preg_replace

Ara,bul,degistir kisaca

Sansürle,gizle ve zararli string güvenligi alanlarinda cok kullanilir.
eval() le DB den veri okurkende kesinlikle karsimiza cikacak fonksiyonlar..egitim sart:)
SeyFull@H isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
  #4
Alt 09.04.2007, 09:45
 
Üyelik tarihi: 02.01.2006
Mesajlar: 90
Konulara Teşekkür etti: 0
0 Teşekkür aldı 0 Mesajlar için

evet.. formlarda alanlari dogru doldurulup doldurulmadigini kontrol etmek gibi bir cok alandada kullanmak mümkün...

bi yan etkisi var oda performansi etkilemesi.
cengaver1 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Seçenekler

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar son Mesaj
slm alykm yeni giriş yaptım slm ve dua ile yakup Tanışma ve Deneme Mesajlarınız 13 04.04.2007 23:20
Tabir caizse, cenneti alaya giriş vizesi. ledunn Dini Bilgi ve Eğitim 0 17.06.2005 22:45
Şeytanın Kalbe Giriş Yolları !!! xman Dini Bilgi ve Eğitim 1 06.02.2005 10:51


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 16:17 .
Powered by vBulletin Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS Web Design by: vbdesigns.de

 
Anasayfa - Arşiv - Yukarı git