Php 如何根据html标记将字符串拆分为数组
我有一个带有HTML标记的字符串,我想分解成如下所示的数组 我考虑爆炸的标签是:Php 如何根据html标记将字符串拆分为数组,php,preg-replace,Php,Preg Replace,我有一个带有HTML标记的字符串,我想分解成如下所示的数组 我考虑爆炸的标签是:p、h1、h2、h3、h4、h5、, 例如: $data ="<p> Paragraph 1 </p> <h2>h2 tag 1 </h2> <p> Paragraph 2.</p> <p>Paragraph 3 </p> <ol> <li>pizza</li> <li>bu
p、h1、h2、h3、h4、h5、,
例如:
$data ="<p> Paragraph 1 </p> <h2>h2 tag 1 </h2> <p> Paragraph 2.</p> <p>Paragraph 3 </p> <ol> <li>pizza</li> <li>burgers</li> <li>salad</li> </ol> <ul> <li> <ul> <li> One </li> <li>Twp </li> <li>Three</li> </ul> </li> </ul> <p> Paragraph
5 </p> <p>Paragraph 6:</p> <h4> h4 tag</h4> <h1> h4 tag</h1> <h4> h4 tag</h4>"
$data=“第1段第2段第3段比萨饼汉堡 沙拉
第6段:h4标签h4标签h4标签”
我需要以下输出:
$array_tags= [
0 => <p> Paragraph 1 </p>,
1 => <h2>h2 tag 1 </h2>,
2 => <p> Paragraph 2 </p>,
3 => <p> Paragraph 3 </p>,
4 => <ol> <li>pizza</li> <li>burgers</li> <li>salad</li> </ol>,
5 => <p> Paragraph 4 </p>,
6 => <ul> <li> <ul> <li> One </li> <li>Twp </li> <li>Three</li> </ul> </li> </ul>,
7 => <p> Paragraph 5 </p>,
8 => <p> Paragraph 6 </p>,
9 => <h4> h4 tag</h4>,
10 => <h1> h1 tag</h1>,
];
$array\u标记=[
0=>第1段,
1=>h2标签1,
2=>第2段,
第3段,
4=>比萨饼 汉堡沙拉 ,
5=>第4段,
6=>- 一个
- Twp
- 三个
,
7=>第5段,
8=>第6段,
9=>h4标签,
10=>h1标签,
];
有人能帮忙吗?提前谢谢 应该使用将字符串拆分为数组
$data ="<p> Paragraph 1 </p> <h2>h2 tag 1 </h2> <p> Paragraph 2.</p> <p>Paragraph 3 </p> <ol> <li>pizza</li> <li>burgers</li> <li>salad</li> </ol> <ul> <li> <ul> <li> One </li> <li>Twp </li> <li>Three</li> </ul> </li> </ul> <p> Paragraph
5 </p> <p>Paragraph 6:</p> <h4> h4 tag</h4> <h1> h4 tag</h1> <h4> h4 tag</h4>";
preg_match_all('/<p>(.*?)<\/p>|<h1>(.*?)<\/h1>|<h2>(.*?)<\/h2>|<h3>(.*?)<\/h3>|<h4>(.*?)<\/h4>|<h5>(.*?)<\/h5>|<ul>(.*)<\/ul>|<ol>(.*?)<\/ol>/', $data, $matches);
dd($matches[0]);
$data=“第1段第2段第3段比萨饼汉堡 沙拉
5第6段:h4标签h4标签;
preg|u match|u all('/(.*)(.*)(.*)(.*)(.*)(.*)(.*)(.*)(.*)(.*)(.*)(.*)(.*)/”,$data,$matches);
dd($matches[0]);
输出
数组:10[▼
0=>“第1段”
1=>“h2标记1”
2=>“第2段。”
3=>“第3段”
4=>“比萨饼 汉堡 沙拉 ”
5=>“- 一个
- 三个
”
6=>“第6段:”
7=>“h4标签”
8=>“h4标签”
9=>“h4标签”
]
您试过了吗?一切都好吗?除了标签外,一切看起来都很好。它应该返回- 一个Twp
- 三个
,但最后一个
丢失。这里有任何建议吗?我更新了代码,请再试一次,用(*)替换(*)谢谢!它正在按预期工作!
array:10 [▼
0 => "<p> Paragraph 1 </p>"
1 => "<h2>h2 tag 1 </h2>"
2 => "<p> Paragraph 2.</p>"
3 => "<p>Paragraph 3 </p>"
4 => "<ol> <li>pizza</li> <li>burgers</li> <li>salad</li> </ol>"
5 => "<ul> <li> <ul> <li> One </li> <li>Twp </li> <li>Three</li> </ul> </li> </ul>"
6 => "<p>Paragraph 6:</p>"
7 => "<h4> h4 tag</h4>"
8 => "<h1> h4 tag</h1>"
9 => "<h4> h4 tag</h4>"
]