php ile html Kodun Meta Tagları Nasıl Alınır Versiyon 2.10

soulmy php 11.Mar.2014 84 görüntülenme 0 yorum

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.