php’nin güçlü string araçlarından biriside preg_match (yada preg_match_all). preg_match’in ençok kullanıldığı alanlardar biriside veri çekmek, data parse etmek yani kısaca string işlemleri.
preg_match ile preg_match_all arasındaki en büyük fark preg_match_all eşleşen tüm kayıtları bulur, preg_match ise sadece ilkini bulur (tabi eğer varsa) ve işlemi sonlandırır.
çıktısı ile beraber küçük bir örnek:
Kod Çizelgesi Kod Dili: php
<?php
$metin = “<a href=’1.html’>bu kısım</a> <a href=’1.html’>bu kısım 2</a> <a href=’1.html’>bu kısım 3</a>”;
$aranan = “/<a href=’1.html’>(.*?)</a>/i”;
preg_match($aranan, $metin, $sonuc);
print_r($sonuc);
?>
$aranan : deseni / / arasında kalmalı en sonraki i aramanın küçük büyük harf duyarsız olmasını sağlar (in-sensitive)
çıktı:
Kod Çizelgesi Kod Dili: php
Array
(
[0] => <a href=’1.html’>bu kısım</a>
[1] => bu kısım
)
preg_match ilk sonucu buldu ve bir dizi halinde bize geri verdi. 0.elemanında pattern dahil hali, 1.elemanında pattenrsiz sadece bizim istediğimiz halini barındırır.
preg_match yerine preg_match_all kullanınca cıktı:
Kod Çizelgesi Kod Dili: php
Array
(
[0] => Array
(
[0] => <a href=’1.html’>bu kısım</a>
[1] => <a href=’1.html’>bu kısım 2</a>
[2] => <a href=’1.html’>bu kısım 3</a>
)
[1] => Array
(
[0] => bu kısım
[1] => bu kısım 2
[2] => bu kısım 3
)
)
bu sefer tüm eşleşen stringleri bir dizide döndürür.