1

Web ページをスクレイピングしてデータをログに記録する小さなパーサーを構築しています。ログに記録するものの 1 つは、フォーラムの投稿タイトルです。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 文字コードがあります。これらの特殊文字コードを元の文字列に変換するにはどうすればよいですか?

ありがとう。

4

3 に答える 3

3

html_entity_decodeを使用します。簡単な例を次に示します。

$string = "hyphenated&#8211words";

$new = html_entity_decode($string);

echo $new;

君は見るべきだ...

hyphenated–words
于 2012-08-21T21:39:24.053 に答える
0

ドキュメンテーションはあなたの友達です:

html_entity_decode(trim($title->plaintext), ENT_XHTML, YOUR_ENCODING);
                                            ^^^^^^^^^^^^^^^^^^^^^^^^
于 2012-08-21T21:26:28.027 に答える
0

これは役立つかもしれません:

<?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("&#8218;", "&#8222;", "&#8230;", "&#8216;", "&#8217;", "&#8220;", "&#8221;", "&#8226;", "&#8211;", "&#8212;"),$str);
return $str;
}
?>
于 2012-08-21T21:34:43.983 に答える