Tôi muốn chuyển đổi tất cả các thẻ html (& nbsp & gt & lt vv) để định dạng văn bản; Tôi đã thửPHP convert html vào không gian, > đến> vv
html_entity_decode()
nhưng nó sẽ trở lại? nếu & nbsp.
Tôi muốn chuyển đổi tất cả các thẻ html (& nbsp & gt & lt vv) để định dạng văn bản; Tôi đã thửPHP convert html vào không gian, > đến> vv
html_entity_decode()
nhưng nó sẽ trở lại? nếu & nbsp.
Sử dụng htmlspecialchars_decode
là đối diện của htmlspecialchars
.
Ví dụ từ trang tài liệu PHP:
$str = '<p>this -> "</p>';
echo htmlspecialchars_decode($str);
//Output: <p>this -> "</p>
html_entity_decode() là đối diện của htmlentities() ở chỗ nó chuyển đổi tất cả các thực thể HTML trong chuỗi thành các ký tự có thể áp dụng.
$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
Sử dụng
html_entity_decode()thay vì
html_entity_encode()
Nếu bạn kiểm tra hướng dẫn html_entity_decode():
Bạn có thể tự hỏi tại sao trim (html_entity_decode (' ')); không cắt giảm chuỗi thành chuỗi trống, đó là vì thực thể ' ' không phải là mã ASCII 32 (được cắt bằng trim()) nhưng mã ASCII 160 (0xa0) trong ký tự ISO 8859-1 mặc định .
Bạn có thể tổ html_entity_decode() chức năng của bạn bên trong một str_replace() để ASCII # 160 đến một không gian:
<?php
echo str_replace("\xA0", ' ', html_entity_decode('ABC XYZ'));
?>
Tôi biết câu trả lời của tôi đang đến trong rất trễ nhưng nghĩ rằng nó có thể giúp đỡ người khác. Tôi thấy rằng cách tốt nhất để trích xuất tất cả các ký tự đặc biệt là sử dụng utf8_decode() trong php. Ngay cả khi giao dịch với
hoặc bất kỳ ký tự đặc biệt nào khác đại diện cho việc sử dụng khoảng trắng trống utf8_decode()
.
Sau khi sử dụng utf8_decode()
, người ta có thể thao tác các ký tự này trực tiếp trong mã. Ví dụ, trong đoạn mã sau, hàm clean() thay thế
bằng một ô trống. Sau đó, nó thay thế tất cả các khoảng trắng thừa bằng một khoảng trắng đơn bằng cách sử dụng preg_replace()
. Các khoảng trắng đầu và cuối được xóa bằng cách sử dụng 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;
Xin chào thế giới! lorem ipsum.
Tại sao bạn không kiểm tra? Và cũng cuộn xuống trên trang hướng dẫn sử dụng vì có các hàm liên quan được liệt kê. – hakre