2009-04-07 22 views
7

Chúng tôi đã lưu một số thông tin phân số trong cơ sở dữ liệu, ví dụ: ¾ ½Chuyển đổi phân số thành các thực thể html

Thực hiện tìm kiếm và thay thế, có bất kỳ hàm PHP sẵn có nào sẽ tự động chuyển đổi chúng thành các thực thể html thích hợp không?

Trả lời

2

Bạn có thể sử dụng htmlentities() function. Điều này sẽ thay thế tất cả các ký tự đặc biệt bằng HTML tương đương. Nó sẽ làm công việc của bạn yêu cầu.

Câu hỏi hay, btw, +1.

2

htmlentities.

Nhưng có thể bạn không cần. Phục vụ trang của bạn trong một bảng mã bao gồm chúng (UTF-8, ISO-8859-1) và bạn có thể bao gồm các ký tự đó dưới dạng ký tự chữ, không thoát.

+0

thực sự? điều này chỉ áp dụng cho phân số? – Tom

+1

Utf-8 sẽ cho phép bạn sử dụng hầu hết mọi ký tự không cần chuyển đổi. Tuy nhiên, bạn vẫn nên gọi htmlentities để bảo mật. http://akrabat.com/2009/03/18/utf8-php-and-mysql/ chi tiết các bước sử dụng UTF-8 - bạn cần thay đổi php, mysql và html. –

+0

Nó áp dụng cho bất cứ điều gì bạn có thể phù hợp với mã hóa bạn đang sử dụng. Nếu bạn đang ở ISO-8859-1 (Tây Âu), bạn nhận được tối đa U + 00FF, bao gồm ¼½¾ (U + 00BC-U + 00BE). Nếu bạn đang sử dụng UTF-8, bao gồm toàn bộ ký tự Unicode. Mặc dù bạn vẫn cần htmlspecialchars để xử lý ‘<’/‘&’. – bobince

1

Câu trả lời đã được đưa ra: sử dụng htmlentities(). Ngoài ra, việc sử dụng UTF-8 đã được đề xuất, mà tất nhiên là một ý tưởng thực sự tốt. Tuy nhiên, nếu bạn đang có kế hoạch về việc sử dụng htmlentities() trên UTF 8-chuỗi, sử dụng đoạn mã sau (hoặc bạn sẽ nhận được thật là thú vị mã hóa ký tự):

htmlentities($str, ENT_COMPAT, 'UTF-8') 

Như bạn có thể tưởng tượng, nó sucks phải thêm thứ hai và đối số thứ ba mọi lúc. Đối với hầu hết các dự án tôi cần htmlentities(), tôi sẽ viết chức năng phím tắt, nghĩa là:

function he($str) { // shortcut function for htmlentities() with UTF-8 settings 
return htmlentities($str, ENT_COMPAT, 'UTF-8'); 
} 
Các vấn đề liên quan