0

このサイトのメタ記述タグから引用を取得すると: http://mashable.com/2011/04/14/google-computers-regret/

「後悔」という単語を囲む引用符は、疑問符として返されます。

$str が返されるメタデータであるのに対し、私は次のコードを使用しています。

if(mb_detect_encoding($str, 'UTF-8, ISO-8859-1', true) != 'ISO-8859-1') $str = utf8_decode($str); 
$str = strtr($str, get_html_translation_table(HTML_ENTITIES)); 
$str = strip_tags(html_entity_decode(htmlspecialchars_decode($str,  ENT_NOQUOTES), ENT_NOQUOTES, "UTF-8"));
$str = html_entity_decode($str, ENT_QUOTES,"UTF-8");

どうすればこれを修正できますか?

4

2 に答える 2

0

結果の HTML を UTF-8 として出力します。

于 2011-04-15T06:55:42.220 に答える
0

これは原始的な修正であり、それを行うためのより良い方法があると確信していますが、次のとおりです。

$str = str_replace( array( "“" , "”" ) , '"' , $str );

これにより、これらの様式化された引用符が単純な引用符に置き換えられ、疑問符の問題が回避されます。

(この不格好なソリューションよりも優れた、よりインテリジェントなソリューションを学べることを嬉しく思います。)

以下のコメントに基づいて改訂されました。

$str = str_replace( array("\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99") , '"' , $str );

この関数を使用して、複数のパターン (配列に保持されている) を同じ置換 str に置き換えることができます。配列を同じ内容で埋めたり、不必要なときに不格好な関数を作成したりするよりも優れています。

于 2011-04-15T05:42:26.223 に答える