すべてのhtmlタグ(&nbsp&gt&ltなど)をテキスト形式に変換したい; 私は試しました
html_entity_decode()
しかし、それは戻りますか?&nbspの場合。
使用htmlspecialchars_decode
はの反対ですhtmlspecialchars
。
PHPドキュメントページの例:
$str = '<p>this -> "</p>';
echo htmlspecialchars_decode($str);
//Output: <p>this -> "</p>
html_entity_decode()は、文字列内のすべてのHTMLエンティティを適切な文字に変換するという点でhtmlentities()の反対です。
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
使用する
html_entity_decode()それ以外の
html_entity_encode()
html_entity_decode()マニュアルを確認する場合:
なぜtrim(html_entity_decode(''));なのか不思議に思うかもしれません。文字列を空の文字列に縮小しません。これは、''エンティティがASCIIコード32(trim()によって削除される)ではなく、デフォルトのISO 8859-1文字セットのASCIIコード160(0xa0)であるためです。
str_replace()内のhtml_entity_decode()関数をASCII#160のスペースにネストできます。
<?php
echo str_replace("\xA0", ' ', html_entity_decode('ABC XYZ') );
?>
私の答えが本当に遅れて来ることは知っていますが、それは他の誰かを助けるかもしれないと思いました。すべての特殊文字を抽出する最良の方法は、phpでutf8_decode()を使用することです。
空白スペースを表すその他の特殊文字を扱う場合でも、を使用しますutf8_decode()
。
使用後utf8_decode()
は、コード内でこれらの文字を直接操作できます。たとえば、次のコードでは、関数clean()が
空白に置き換えられています。次に、を使用して、余分な空白をすべて1つの空白に置き換えますpreg_replace()
。先頭と末尾の空白は、を使用して削除されtrim()
ます。
function clean($str)
{
$str = utf8_decode($str);
$str = str_replace(" ", "", $str);
$str = preg_replace("/\s+/", " ", $str);
$str = trim($str);
return $str;
}
$html = " Hello world! lorem ipsum.";
$output = clean($html);
echo $output;
こんにちは世界!loremipsum。