这是女巫的视频,我想得到og:title
http://www.youtube.com/watch?feature=player_embedded&v=A683kmvRH_8
菲律宾代码
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);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$html = file_get_contents_curl($pageurl);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
$titleBackUp = $nodes->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++){
$meta = $metas->item($i);
if($meta->getAttribute('name') == 'title')
$title = $meta->getAttribute('content');
}
标题是 Мастило - В ръцете ти е най-добре [HQ] 我得到了
ÐаÑÐ ̧лÐ3/4 - ÐÑÑÑÐμ ÑÐ ̧ Ðμ Ð1/2ай-Ð'Ð3/4бÑÐμ [总部]
我也尝试
curl_setopt( $ch, CURLOPT_ENCODING, "UTF-8" );
但它确实有效。
我尝试使用html_entity_decode但不起作用
如果文档本身不包含<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
标记,则可能会发生这种情况。
您可以尝试以下任一操作:
-
让
DomDocument
直接从服务器加载 HTML(即使用->loadHTMLFile()
) -
在文档通过
->loadHTML()
运行之前,使用上述元标记作为文档前缀。
例如,您可以执行以下操作:
libxml_use_internal_errors(true);
$doc->loadHTML('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' . $html);
libxml_clear_errors();
让 libxml 知道它应该读取 utf-8 数据是一种黑客......无法通过 ->loadHTML()
传递该编码。