Tôi nghĩ rằng việc loại bỏ bất kỳ thẻ HTML nào khỏi đầu vào sẽ giúp bạn có được thứ gì đó khá an toàn - ngoại trừ nếu ai đó tìm cách đưa một số dữ liệu thực sự lộn xộn vào Markdown, thì việc nó tạo ra một số đầu ra thậm chí còn lộn xộn hơn ^^
Tuy nhiên, đây là hai điều tôi nghĩ đến:
Điều đầu tiên: strip_tags
không phải là một chức năng thần kỳ:nó có một số sai sót ...
Ví dụ:nó sẽ loại bỏ mọi thứ sau dấu '<', trong một tình huống như thế này:
$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));
Đầu ra tôi nhận được là:
string '10 appels is ' (length=13)
Điều này không tốt cho người dùng của bạn :-(
Điều thứ hai: Ngày này hay ngày khác, bạn có thể muốn cho phép một số thẻ / thuộc tính HTML; hoặc ngay cả ngày hôm nay, bạn có thể muốn chắc chắn rằng Markdown không tạo một số Thẻ / thuộc tính HTML.
Bạn có thể quan tâm đến một cái gì đó như HTMLPurifier :nó cho phép bạn chỉ định những thẻ và thuộc tính nào nên được giữ lại và lọc một chuỗi để chỉ những thẻ đó còn lại.
Nó cũng tạo ra mã HTML hợp lệ - luôn tốt ;-)