You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从PHP变量存储的带<p>标签段落中提取内容生成数组

PHP提取p标签内容存入数组实现方法

方案1:DOMDocument解析(推荐)

使用PHP内置的DOM扩展解析HTML是最稳妥的方案,即使p标签带id、class等属性也能正常提取,不会出现匹配错误。
代码示例:

<?php
$text = 
'<p>para 1</p>
<p>para 2</p>
<p>para 3</p>';

// 初始化DOM对象,禁用libxml报错避免HTML不规范导致的提示
$dom = new DOMDocument();
libxml_use_internal_errors(true);
// 转码保证中文正常识别
$dom->loadHTML(mb_convert_encoding($text, 'HTML-ENTITIES', 'UTF-8'));
libxml_clear_errors();

// 获取所有p标签
$p_list = $dom->getElementsByTagName('p');
$result = [];
foreach ($p_list as $p_node) {
    // 提取文本并去除首尾空白
    $result[] = trim($p_node->nodeValue);
}

// 打印验证结果
print_r($result);
?>

运行后输出结果和你要求的结构完全一致:

Array
(
    [0] => para 1
    [1] => para 2
    [2] => para 3
)

方案2:正则匹配(仅适用于固定无属性p标签场景)

如果你的输入结构完全固定,p标签没有任何额外属性,可以用正则快速实现:

<?php
$text = 
'<p>para 1</p>
<p>para 2</p>
<p>para 3</p>';

// 非贪婪匹配所有p标签内的内容
preg_match_all('#<p>(.*?)</p>#s', $text, $matches);
// 去除每个元素的首尾空白
$result = array_map('trim', $matches[1]);

print_r($result);
?>

注意:如果p标签存在属性、嵌套标签等情况,正则方案会匹配失败,优先使用方案1。


内容的提问来源于stack exchange,提问作者jmcgrother

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:57:04