preg_match_all(string
$pattern,string
$subject[,array
&$matches[,int
$flags=PREG_PATTERN_ORDER[,int
$offset=
0]]]
)
Belki
de en çok kullanılan düzenli ifade fonksiyonu. $subject olarak
verilen string içerisinde verilen uyuşmaları arar ve bulduğunda
$matches dizisinin içerisine koyar. Eğer bulamazsa boş array
döndürür.
// Comment
$text_str="Bu sabah yagmur var İstanbulda Gözlerim Dolu dolu oluyor Bilinmez yere";
$sonuclar=preg_match_all('/yagmur(.*?)dolu/',$text_str,$matches);
var_dump($matches);
var_dump
çıktısı:
array
0 => array 0 => string 'yagmur var İstanbulda Gözlerim Dolu dolu' (length=42) 1 => array 0 => string ' var İstanbulda Gözlerim Dolu ' (length=32)
Burada
önemli husus, preg_match_all sonrasında var_dump() ile sonucun ne
olduğunu görmeniz. Bu sayede array'in hangi elemanını alacağımızı
kolayca bulabiliyoruz. Mesela yağmur ve dolu arasındaki tum
stringleri almak istiyoruz. $match=$matches[1] yaptığımızda
$match Array 'i içerisine tüm istenen sonuçlar atanıyor. Yalnız
$match bu durumda string değil arraydir.
preg_match(string
$pattern
,
string $subject
[,
array &$matches
[,
int $flags
=
0 [,
int $offset
=
0 ]]]
)
$subject
olarak verilen string içerisinde verdiğimiz desene($pattern)
uygunluk var mı diye bakar. Eğer uyuşma bulunursa 1 , bulunamazsa
0 döner.
$text_str="Bu sabah yagmur var İstanbulda Gözlerim Dolu dolu oluyor Bilinmez yere ";
$sonuc=preg_match('/dolu/i',$text_str); //int 1
$sonuc=preg_match('/bos/i',$text_str); //int 0
preg_replace(mixed
$pattern
,
mixed
$replacement
,
mixed
$subject
[,
int $limit
=
-1[,int&$count]]
)
$subject
içerisinde verilen desene($pattern) uygun olan bölümleri
$replacement ile verilen array, string veya integer ile değiştirir.
$text_str="Bu sabah yagmur var İstanbulda Gözlerim Dolu dolu oluyor Bilinmez yere ";
$replace='bos';
$sonuc=preg_replace('/dolu/i',$replace,$text_str);
// $sonuc-> Bu sabah yagmur var İstanbulda Gözlerim bos bos oluyor Bilinmez yere
$pattern=array('/dolu/i','/yagmur/');
$replace=array('bos','kar');
$sonuc=preg_replace($pattern,$replace,$text_str);
//$sonuc-> Bu sabah kar var İstanbulda Gözlerim bos bos oluyor Bilinmez yere
preg_filter($pattern,$replacement,$subject,[int
$limit,[int &$count]] )
preg_replace
fonksiyonuna benzer , ancak preg_filter sadece eşleşmeleri
döndürür..
$text_arr=array("Kedi eti yemedi","Kedi fare yedi");
$sonuclar=preg_filter('/fare/','herseyi',$text_arr);
// Out: Kedi herseyi yedi
Dizinin
ilk elemanında eşleşme bulunmadığı için onu sonuçlar
içerisine koymadı. preg_replace fonksiyonundan farkı budur.
preg_grep
(
string
$pattern
,
array $input
[,
int $flags
=
0 ]
)
fonksiyon
girdi olarak bir dizi(array) ve karşılaştırma yapılacak olan
şekli (pattern) alır. Eğer karşılaştırma tutarsa dizinin tutan
elemanını döndürür.
$text_arr=array("Bu sabah yagmur var İstanbulda","Gözlerim","Dolu dolu oluyor","Bilinmez yere");
$sonuclar=preg_grep('/sabah/',$text_arr);
// Çıktı: Bu sabah yagmur var İstanbulda
Hiç yorum yok:
Yorum Gönder