
本文介绍使用 PHP 的 array_map() 与 strip_tags() 配合,高效提取 HTML 锚标签数组中所有 元素的 innerHTML(即链接文本),并提供去空格等后续处理技巧。
本文介绍使用 php 的 `array_map()` 与 `strip_tags()` 配合,高效提取 html 锚标签数组中所有 `` 元素的 innerhtml(即链接文本),并提供去空格等后续处理技巧。
在 PHP 开发中,常会遇到从 HTML 字符串中提取纯文本的需求。例如,你可能接收到一个包含多个 <a></a> 标签的字符串数组,每个元素形如 "<a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b"> Value1 </a>",而你真正需要的是其中的可读文本内容(如 "Value1"),而非 HTML 结构本身。
最简洁、安全且符合 PHP 惯用法的解决方案是组合使用 array_map() 和内置函数 strip_tags():
$arr = [
"<a href='https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b'> Value1 </a>",
"<a href='https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b'> Value2 </a>",
"<a href='https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b'> Value3 </a>",
];
// 提取所有 <a> 标签内的文本(保留空白)
$result = array_map('strip_tags', $arr);
// 进一步去除首尾空白,获得干净的字符串数组
$result = array_map('trim', $result);
print_r($result);输出结果:
Array
(
[0] => Value1
[1] => Value2
[2] => Value3
)✅ 优势说明:
立即学习“PHP免费学习笔记(深入)”;
-
strip_tags()是 PHP 原生函数,专为移除 HTML/XML 标签设计,性能高、安全性好(不依赖正则,避免 XSS 风险); -
array_map()实现无循环函数式处理,代码简洁、可读性强,天然支持数组批量转换; - 两次
array_map调用(先strip_tags,再trim)逻辑清晰,易于扩展(例如后续可追加htmlspecialchars()防输出注入)。
⚠️ 注意事项:
-
strip_tags()仅移除标签,不会解析或校验 HTML 结构。若输入含嵌套标签(如<a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Text<b>bold</b></a>),它仍会返回"Textbold"—— 这是预期行为,但需确保原始数据结构简单可控; - 若需更精细控制(如只提取特定标签内容、保留部分格式),建议使用 DOMDocument 或第三方库(如 Symfony DomCrawler);
- 切勿用正则表达式匹配 HTML(如
preg_match('/>(.*?)'),因其无法可靠处理属性引号、注释、CDATA 等边界情况,存在严重维护与安全风险。
综上,对于标准、结构清晰的锚标签数组文本提取任务,array_map('strip_tags', $arr) 是最推荐的轻量级解决方案。



















