16

すべてのhtmlタグ(&nbsp&gt&ltなど)をテキスト形式に変換したい; 私は試しました

html_entity_decode() 

しかし、それは戻りますか?&nbspの場合。

4

5 に答える 5

23

使用htmlspecialchars_decodeはの反対ですhtmlspecialchars
PHPドキュメントページの例:

    $str = '<p>this -&gt; &quot;</p>';
    echo htmlspecialchars_decode($str); 
    //Output: <p>this -> "</p>
于 2013-04-06T07:59:32.330 に答える
16

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 &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now
于 2013-03-08T08:38:29.223 に答える
6

使用する

html_entity_decode()
それ以外の
html_entity_encode()

于 2013-03-08T08:40:52.663 に答える
4

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 &nbsp; XYZ') );

?>
于 2014-11-06T21:45:49.000 に答える
1

私の答えが本当に遅れて来ることは知っていますが、それは他の誰かを助けるかもしれないと思いました。すべての特殊文字を抽出する最良の方法は、phpでutf8_decode()を使用することです。&nbsp;空白スペースを表すその他の特殊文字を扱う場合でも、を使用しますutf8_decode()

使用後utf8_decode()は、コード内でこれらの文字を直接操作できます。たとえば、次のコードでは、関数clean()が&nbsp;空白に置き換えられています。次に、を使用して、余分な空白をすべて1つの空白に置き換えますpreg_replace()。先頭と末尾の空白は、を使用して削除されtrim()ます。

function clean($str)
{       
    $str = utf8_decode($str);
    $str = str_replace("&nbsp;", "", $str);
    $str = preg_replace("/\s+/", " ", $str);
    $str = trim($str);
    return $str;
}

$html = "&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;Hello world! lorem ipsum.";
$output = clean($html);
echo $output;

こんにちは世界!loremipsum。

于 2016-06-29T19:02:03.253 に答える