php'de get_meta_tags adında bir fonksiyon var. Bu fonksiyonla bir sitenin meta taglarını kolayca alabiliyoruz. Fakat çok yeterli bir fonksiyon değil. Misal, ben curl ile html kodu alıp meta taglarını o şekilde almak istiyorum. İşte bu gibi durumlarda bu fonksiyon yetersiz kalıyor. Ben de bu fonksiyona benzer başka bir fonksiyon hazırladım.
function get_meta_tags2($html, $tag='') {
preg_match_all('/\<meta(.*?)\>/si',$html,$matches);
$tags = array();
foreach ( $matches[1] as $v ) {
if ( preg_match('/charset\=[\'\"]?(.*?)[\'\"]/si',$v,$charset) ) {
$tags['charset'] = $charset[1];
} elseif ( preg_match('/name\=[\'\"](.*?)[\'\"]/si',$v,$name) AND preg_match('/content\=[\'\"](.*?)[\'\"]/si',$v,$content) ) {
$tags[$name[1]] = $content[1];
}
}
if ( !empty($tag) ) {
if ( isset($tags[$tag]) ) {
return $tags[$tag];
} else {
return NULL;
}
}
return $tags;
}
Kullanımı
Fonksiyonu kullanmaya başlamadan önce curl ile sitenin html kodlarını $html ile çektiğinizi varsayarak örnek kullanımı gösteriyorum.
// curl diye bir fonksiyonunuz var ve html kodları bu fonksiyon ile çektiğinizi varsayıyorum.
$html = curl('https://soulmy.net/');
// Çıktımız array şeklinde olacak. [array]
print_r(get_meta_tags2($html));
// Sadece belli bir meta tagını almak istiyorsanız bunu kulanabilirsiniz. [string]
print_r(get_meta_tags2($html,'description'));
Ekran Çıktısı
Array
(
[charset] => UTF-8
[generator] => WordPress 3.8.1
[description] => Yazarın wordpress, php deneyimlerini paylaştığı, bunun yanısıra oyun ve program dünyasına dair güncel bilgiler verdiği blog sitesi.
)
Yazarın wordpress, php deneyimlerini paylaştığı, bunun yanısıra oyun ve program dünyasına dair güncel bilgiler verdiği blog sitesi.
Yorumlar
Bu yazıya yorum yapan ilk kişi sen ol.