我正在构建一个小型解析器,用于抓取网页并记录网页上的数据。其中一个需要记录的是论坛的帖子标题。我正在使用一个XML解析器来浏览DOM并获得这些信息,并且我将其存储为:
// Strip out the post's title
$title = $page->find('a[rel=bookmark]', 0);
$title = htmlspecialchars_decode(html_entity_decode(trim($title->plaintext)));
这在大多数情况下都有效,但有些帖子有一些特殊的HTML字符代码,比如–
,它是短划线(-
)。我该如何将这些特殊的字符代码转换回它们的原始字符串?
谢谢。
使用html_entity_decode。下面是一个简单的例子。
$string = "hyphenated–words";
$new = html_entity_decode($string);
echo $new;
你应该看看。。。
hyphenated–words
文档是您的朋友:
html_entity_decode(trim($title->plaintext), ENT_XHTML, YOUR_ENCODING);
^^^^^^^^^^^^^^^^^^^^^^^^
这可能会有所帮助:
<?php
function clean_up($str){
$str = stripslashes($str);
$str = strtr($str, get_html_translation_table(HTML_ENTITIES));
$str = str_replace( array("'x82", "'x84", "'x85", "'x91", "'x92", "'x93", "'x94", "'x95", "'x96", "'x97"), array("‚", "„", "…", "‘", "’", "“", "”", "•", "–", "—"),$str);
return $str;
}
?>