Merhabalar, birçok kez preg_match konusunda problem çektiğimiz için size tüm kaynaklardan alınmış açıklayıcı bir makale hazırlama ihtiyacı duydum
Öncelikle bu iki terimin ne olduğuna bakalım
<b>POSIX</b>, (Portable Operating System Interface for Unix) UNIX için Taşınabilir İşletim Sistemi Arabirimi. <b>PCRE</b>, (Perl Compatible Regular Expressions) Perl Uyumlu Düzenli İfadeler
Öncelikle PHP 5.3.0 ile yayından kalkan POSIX ve yerine kullanılacak olan PCRE fonksiyonlarına bir gözatalım.
POSIX | PCRE |
---|---|
ereg_replace () | preg_replace () |
ereg () | preg_match () |
eregi_replace () | preg_replace () |
eregi () | preg_match () |
split () | preg_split () |
spliti () | preg_split () |
sql_regcase () | Eşdeğer Yok |
Peki nedir bu preg fonksiyonları?
preg_grep | Koşula uyan dizi elemanlarını seçer. Ör:$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array); |
preg_match | Regexp koşulunu metne uygular, sonuçlar diziye aktarılır. Ör:preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); |
preg_match_all | İki boyutlu dizi kullanarak preg_match tan farklı olarak grup elemanlarını da ayırır. Ör:preg_match_all("|<[^>]+>(.*)</[^>]+>|U",<br> "<b>example: </b><div align=left>this is a test</div>",<br> $out, PREG_PATTERN_ORDER); |
preg_replace | Bul değiştir işlemini regexp uygunluğuna göre yapar. Ör:$string = 'April 15, 2003';<br> $pattern = '/(\w+) (\d+), (\d+)/i';<br> $replacement = '${1}1,$3';<br> echo preg_replace($pattern, $replacement, $string); |
preg_replace_callback | preg_replace’den farklı olarak değiştirme işleminde PHP fonksiyonunu kullanır. Bu durum çok daha kapsamlı değişim yapabilme olanağı sağlar. |
preg_split | Regexp uyumuna göre metni bölme işlemi yapar. Ör:$keywords = preg_split("/[\s,]+/", "hypertext<br><br /> |