Başka bir yerden veri çekmek için kolay bir yöntemi anlatmak istiyorum.
PHP'nin en güçlü string araçlarından birisi olan preg_match ile preg_match_all fonksiyonlarını kısaca anlatmaya çalışacağım.
preg_macth ile preg_macth_all fonksiyonları arasındaki en büyük farkı preg_macth eşleşen sadece tek kayıt (eğer kayıt varsa
), preg_macth_all ise eşleşen tüm kayıtları bulur ve işlemi sonlandırır.
Ortak noktaları ise her ikiside dizi olarak çıktı verirler.
- Kod:
-
<?
$kaynak= "<div>Birinci Bölüm</div> <div>İkinci Bölüm</div> <div>Üçüncü Bölüm</div> <div>Dördüncü Bölüm</div>";
$aranan = "/<div>(.*?)</[^>]+>/i";
preg_match($aranan, $kaynak, $sonuc);
print_r($sonuc);
?>
$aranan / / arasında kalmalıdır. En sondaki i aramanın küçük büyük harf duyarsız olmasını sağlar.
- Kod:
-
Array
(
[0] => <div>Birinci Bölüm</div>
[1] => Birinci Bölüm
)
Programın çıktısında yukarıdaki görüntü çıkacaktır. preg_macth dizinin sadece ilk elemanı ( 0 nolu eleman ) listeler.
- Kod:
-
Array
(
[0] => Array
(
[0] => <div>Birinci Bölüm</div>
[1] => <div>İkinci Bölüm</div>
[2] => <div>Üçüncü Bölüm</div>
[3] => <div>Dördüncü Bölüm</div>
)
[1] => Array
(
[0] => Birinci Bölüm
[1] => İkinci Bölüm
[2] => Üçüncü Bölüm
[3] => Dördüncü Bölüm
)
)
Yukarıdaki çıktının gösterilmesi için ise yukarıdaki yazılımda preg_macth yerine preg_macth_all yazarsak bu sonucu alırız. Çünkü preg_macth_all tüm eşleşen kayıtları İki Boyutlu dizi içerisinde sıralayacaktır.