Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用html内容动态填充数组而不剥离标记_Php_Html - Fatal编程技术网

Php 使用html内容动态填充数组而不剥离标记

Php 使用html内容动态填充数组而不剥离标记,php,html,Php,Html,我有一些HTML内容 例如 提出问题等待答案投票支持答案 我想使用php分别输入每个段落/div或任何其他html元素作为数组的元素 $arr[0]="<p>Ask a question</p>"; $arr[1]="<p>Wait for an answer</p>"; $arr[0]=“提问””; $arr[1]=“等待回答””; 我想动态地完成上述任务。有很多方法可以做到这一点。我的第一种方法是使用: 假设您的html位于$html中:

我有一些HTML内容

例如

提出问题

等待答案

投票支持答案

我想使用php分别输入每个段落/div或任何其他html元素作为数组的元素

$arr[0]="<p>Ask a question</p>";
$arr[1]="<p>Wait for an answer</p>";
$arr[0]=“提问”

”; $arr[1]=“等待回答”

”;

我想动态地完成上述任务。

有很多方法可以做到这一点。我的第一种方法是使用:

假设您的html位于
$html
中:

preg_match_all(“|+?

|si',$html,$matches)

$matches
将是一个由1个元素x N个元素组成的数组,其中N是匹配数

$matches[0][0] == '<p>Ask a question</p>';
$matches[0][1] == '<p>Wait for an answer</p>';
...
$matches[0][0]='问一个问题;
$matches[0][1]='等待答案;
...
编辑:这可以推广到匹配其他标记,但是在复杂度要求超过正则表达式能够解析的能力之后,应该使用DOM解析器


如果您想匹配一组固定的不可嵌套标记,这种方法会起作用,但是如果所需的标记是可嵌套的或自动关闭的,那么正则表达式就不是解决方法,使用简单的DOM解析器将是正确的解决方案。

。你试过什么?这是怎么回事?我试着用explode分解它,但它删除了标记,我甚至查找了regex,但没有找到任何线索。如果有其他html标记beisde'p',你能给一个regex来匹配这些其他标记吗?我能用php简单DOM解析器完成上述任务吗?是的,使用DOM解析器是一种方法,通常是“正确”的方法,但我通常会在完整的解析器上使用这种技术,因为如果您有固定的标准,它通常会更简单。
$matches[0][0] == '<p>Ask a question</p>';
$matches[0][1] == '<p>Wait for an answer</p>';
...