在阅读网站的元标记后转换特殊字符

时间:2014-06-24 14:55:29

标签: php

我使用此代码从外部网站上提取Facebook元标记,该代码有效:

$site = file_get_contents($link);
$html = new DOMDocument();
@$html->loadHTML($site);
$meta_title = null;
foreach($html->getElementsByTagName('meta') as $meta) {
    if($meta->getAttribute('property')=='og:title'){ 
        $meta_title = $meta->getAttribute('content');
    }
 }
echo 'og:title: '.$meta_title;

我的问题是,如果og:title包含带撇号的内容,例如,它会输出一堆时髦的字符。例如:

  

这就是现货

而不是:

  

那是现货

如何正确输出?

2 个答案:

答案 0 :(得分:1)

检查第三方网站整理,它是在utf-8或拉丁语。

然后您应该转换为您的网站排序规则。你在用什么? utf8或拉丁语?

如果您使用的是utf8和第三部分拉丁语,则应使用

utf8_encode($actualVar)

如果你使用拉丁语和第三部分utf8,你应该使用

utf8_decode($actualVar)

我认为有两种不同的排序规则。如果是两个UTF8也将你的php标头转换为utf8:

header('Content-Type: text/html; charset=utf-8');

如果您尝试使用拉丁语(iso-8859-1)使用

header('Content-Type: text/html; charset=iso-8859-1');

靠墙应该以任何方式工作。

答案 1 :(得分:0)

解决方案是在PHP文件的顶部包含UTF-8编码元标记。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />