Burada
preg_match_alla gerek yok.
preg_match işinizi görür.
<?php
$site = file_get_contents('http://www.haberler.com/2010/Ocak/1/guncel/');
$head = preg_match('~<head>(.*?)<\/head>~im', $site, $match) ? $match[1] : 'Alınamadı';
echo $head;
?>
Alıntı
Ayarlar (Modifiers)
Desen gövdesini iyice öğrendikten sonra hâliyle sıra ayarlara geliyor. Bu ayarlar kısmı, programlama dilleri arasında biraz farklılık gösteriyor. Burada yer vereceklerim, PHP’nin Regexp fonksiyonlarında geçerli olanları. Onların da hepsi değil, en mühim olan ve sık kullanılanları. Diğer diller ve diğer ayarlar için, ilgili kaynakları karıştırmanız lâzım.
“i” ayarı
Desenin, büyük küçük harf hassâsiyeti olmadan çalışmasını sağlar. Harfin menşei, “Case insensitive” ifâdesindeki “insensitive” kelimesidir.
“m” ayarı
Başlangıç ve bitişi yakalamaya yarayan “^” ve “$” karakterlerinin satır başı ve sonu için de geçerli olmasını sağlar. Desenimizi, içinde satır sonu karakteri “\n” geçmeyen metinler üzerinde uygularsak, hiç etkisi olmaz. Harfin menşei muhtemelen “multiline” kelimesidir.
“s” ayarı
Bu ayarı kullandığımızda, desenimizdeki “satır sonu hâriç herhangi bir karakter” anlamına gelen “.” işâretleri, satır sonu karakterlerini “\n” de yakalamaya başlar. Harfin menşei “single line” ifâdesidir.
“x” ayarı
“Whitespace” denilen boşluk türü (\n\r\t) karakterlerin, karakter setleri içinde yer aldıkları durumlar hâricinde desenden sayılmamasını sağlar. Bu sâyede, deseni program içinde çok satırlı şekilde yazmak mümkün olur.
“e” ayarı
preg_replace fonksiyonu için özel bir ayardır. Fonksiyonun değiştirme işlemlerini bitirdikten sonra, yerine yerleştireceği sonuçları eval’den geçirmesini sağlar. Bu sâyede, yakalanan her bir eşleşme için kendi tanımladığımız bir başka fonksiyonu çağırarak, sonuç üzerinde düzenleme yapma şansımız olur.
“u” ayarı
Desenimizin UTF-8 olduğu kabulü ile çalıştırılmasını sağlar. Eğer desenin içinde yer aldığı .php dosyamız UTF-8 karakter kodu ile kayıtlı ise, regexp fonksiyonları kullanırken bu ayarı eklememiz gerekir.