淘先锋技术网

首页 1 2 3 4 5 6 7

PHP Strip HTML

在Web开发中常常需要从HTML代码中提取纯文本,因为HTML代码中可能有大量的标签和格式化信息,并且这些信息并不总是对于我们的应用程序有用的。

在PHP中,有许多函数可以用来剥离HTML代码中的标签和其他元素,最常用的是strip_tags()函数。该函数带有两个参数,第一个是需要进行HTML剥离的字符串,第二个是可选参数,用来指定允许保留的标签。以下是一个简单的例子:

$text = '<p>这是一个带HTML标签的段落。</p><br/><p>这是另一个带HTML标签的段落。</p>';
$stripped_text = strip_tags($text);
echo $stripped_text;
//输出:这是一个带HTML标签的段落。这是另一个带HTML标签的段落。

上面的例子中,我们将$text字符串中的所有HTML标签都去掉了,只保留了文本内容。

有时候我们需要保留某些标签,例如,如果我们想保留<p>标签,但去掉<script>和<style>标签,我们可以这样写:

$text = '这是一个带<p>标签的段落 <script>alert("这是JavaScript代码")</script>.<style>.red {color:red}</style>';
$stripped_text = strip_tags($text, '<p>');
echo $stripped_text;
// 输出:这是一个带<p>标签的段落 。

在这个例子中,我们保留了<p>标签,而将所有其他标签都去掉了。如果您不指定第二个参数,则strip_tags()函数默认会删除所有标签。

另一个常见的用例是用strip_tags()函数从HTML代码中提取链接。我们可以使用正则表达式来捕获<a>标签中的href属性:

$html = '<p>这是一个链接:<a href="https://www.example.com">例子链接</a></p>';
$stripped_text = strip_tags($html);
preg_match('/<a href=\\\\"(.*?)\\\\"/', $stripped_text, $match);
$link = $match[1];
echo $link;
// 输出:https://www.example.com

在这个例子中,我们用strip_tags()函数将HTML代码中的所有标签去除,并用preg_match()函数从结果中提取出了a标签中的href属性值。

最后,需要注意的是strip_tags()函数不能防止跨站脚本攻击(XSS),因为它只是删除了HTML标签,但留下了所有的脚本。因此,为了避免XSS攻击,我们需要使用其他安全措施,例如htmlspecialchars()函数。