Introduction
Getting Arabic can be very difficult, but these are some basic steps needed to ensure
- Your document should output
UTF-8
- Your DOMDocument should read in UTF-8 fromat
Problem
Upon receipt of Youtube information, information in the "UTF-8" format has already been provided, and the search process adds the UTF-8
add UTF-8
. I don't know why this is happening, but a simple utf8_decode
fix the problem.
Example
header('Content-Type: text/html; charset=UTF-8'); echo displayMeta("http://www.emaratalyoum.com/multimedia/videos/2012-04-08-1.474873"); echo displayMeta("http://www.youtube.com/watch?v=Eyxljw31TtU&feature=g-logo&context=G2c4f841FOAAAAAAAFAA");
Exit
emaratalyoum.com
التقطت عدسات الكاميرا حارس مرمى ريال مدريد إيكر كاسياس في موقف محرج قبل لحظات من بداية مباراة النادي الملكي مع أبويل القبرصي في ذهاب دور الثمانية لدوري أبطال
youtube.com
أوروبا.ففي النفق المؤدي إلى الملعب، قام كاسياس بوضع إصبعه في أنفه، وبعدها قام بمسح يده في وجه أحدبنات سعوديات: أريد "شايب يدللني ولا شاب يعللني"
Function used
displayMeta STRONG>
function displayMeta($checkurl) { $html = file_get_contents_curl($checkurl); $grid = ''; if ($html) { $doc = new DOMDocument("1.0","UTF-8"); @$doc->loadHTML($html); $nodes = $doc->getElementsByTagName('title'); $title = $nodes->item(0)->nodeValue; $metas = $doc->getElementsByTagName('meta'); for($i = 0; $i < $metas->length; $i ++) { $meta = $metas->item($i); if ($meta->getAttribute('name') == 'description') { $description = $meta->getAttribute('content'); if (stripos(parse_url($checkurl, PHP_URL_HOST), "youtube") !== false) return utf8_decode($description); else { return $description; } } } } }
* file_get_contents_curl *
function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $data = curl_exec($ch); $info = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); // checking mime types if (strstr($info, 'text/html')) { curl_close($ch); return $data; } else { return false; } }