że chcemy przekształcić wszystkie znaczniki HTML (& nbsp & GT & LT etc.) na format tekstowy; Mam spróbowaćPHP konwersji HTML do przestrzeni > do> itp
html_entity_decode()
, ale to się zwróci? jeśli & nbsp.
że chcemy przekształcić wszystkie znaczniki HTML (& nbsp & GT & LT etc.) na format tekstowy; Mam spróbowaćPHP konwersji HTML do przestrzeni > do> itp
html_entity_decode()
, ale to się zwróci? jeśli & nbsp.
Zastosowanie htmlspecialchars_decode
jest przeciwieństwem htmlspecialchars
.
Przykład ze strony dokumentacji PHP:
$str = '<p>this -> "</p>';
echo htmlspecialchars_decode($str);
//Output: <p>this -> "</p>
html_entity_decode() jest przeciwieństwem htmlentities(), ponieważ konwertuje wszystkie elementy HTML w łańcuchu na ich odpowiednie znaki.
$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
Zastosowanie
html_entity_decode()zamiast
html_entity_encode()
Jeśli zaznaczysz instrukcję html_entity_decode():
można się zastanawiać, dlaczego wykończenia (html_entity_decode (' ')); nie redukuje łańcucha znaków do pustego ciągu, ponieważ encja " " nie jest kodem ASCII 32 (który jest usuwany przez trim()), ale kod ASCII kod 160 (0xa0) w domyślnym zestawie znaków ISO 8859-1 .
Można gniazdo czynność html_entity_decode() wewnątrz str_replace() do ASCII nr 160 do przestrzeni:
<?php
echo str_replace("\xA0", ' ', html_entity_decode('ABC XYZ'));
?>
Wiem, że moja odpowiedź przychodzi w bardzo późno, ale pomyślałem, że może to pomóc komuś innemu. Uważam, że najlepszym sposobem na wyodrębnienie wszystkich znaków specjalnych jest użycie utf8_decode() w php. Nawet do czynienia z
lub jakimkolwiek innym specjalnym znakiem reprezentującym puste miejsce użyj utf8_decode()
.
Po użyciu utf8_decode()
można manipulować tymi znakami bezpośrednio w kodzie. Na przykład w poniższym kodzie funkcja clean() zastępuje
pustym hasłem. Następnie zastępuje wszystkie dodatkowe białe spacje pojedynczą białą spacją za pomocą preg_replace()
. Prowadzące i końcowe białe przestrzenie są usuwane przy użyciu 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;
Hello world! lorem ipsum.
Dlaczego nie testujesz? Przewiń także stronę podręcznika, ponieważ są tam wymienione powiązane funkcje. – hakre