1. 前言
在开发网页或者 Web 应用程序时,我们通常会使用 HTML 和 CSS 来设置页面的样式。但是有时候,我们需要在应用程序中去掉 HTML 标签和 CSS 样式,以便于在数据库中存储和展示数据。在 PHP 中,有几种方法可以做到这一点。
2. PHP 去除 HTML 标签
PHP 中提供了 strip_tags() 函数来去除 HTML 标签。
2.1 strip_tags() 函数
strip_tags() 函数可以接受一个或多个参数。第一个参数是需要去除标签的字符串。后面的参数可选,用于指定需要保留的标签。
// 去除所有 HTML 标签
$str = '<p>This is <b>bold</b> and this is <i>italic</i></p>';
echo strip_tags($str); // This is bold and this is italic
// 保留 <b> 和 <i> 标签
$str = '<p>This is <b>bold</b> and this is <i>italic</i></p>';
echo strip_tags($str, '<b><i>'); // This is <b>bold</b> and this is <i>italic</i></p>
2.2 htmlspecialchars() 函数
htmlspecialchars() 函数可以将特殊字符转换为 HTML 实体,以防止 XSS 攻击。例如,将 < 转换为 <。
$str = 'This is <b>bold</b> and this is <i>italic</i>';
echo htmlspecialchars($str); // This is <b>bold</b> and this is <i>italic</i>
3. PHP 去除 CSS 样式
PHP 中去除 CSS 样式可以使用正则表达式或者第三方库。
3.1 正则表达式
使用正则表达式去除 CSS 样式。
// 使用正则表达式去除 style 属性
$str = '<p style="color: red; font-size: 12px;">This is a paragraph</p>';
$str = preg_replace('/ style="[^"]*"/', '', $str);
echo $str; // <p>This is a paragraph</p>
3.2 第三方库
使用第三方库去除 CSS 样式,如 HTML Purifier。
require_once '/path/to/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$str = '<p style="color: red; font-size: 12px;">This is a paragraph</p>';
echo $purifier->purify($str); // <p>This is a paragraph</p>
4. 总结
在 PHP 中去除 HTML 标签和 CSS 样式可以使用 strip_tags() 函数和正则表达式或者第三方库。strip_tags() 函数可以快速去除 HTML 标签,但无法去除样式。而使用正则表达式或者第三方库可以去除样式,但需要更多的代码和配置。