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.