Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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文本到数组并带有键_Php_Regex_Arrays_Split - Fatal编程技术网

PHP文本到数组并带有键

PHP文本到数组并带有键,php,regex,arrays,split,Php,Regex,Arrays,Split,我不太了解RegExp,我没有成功地将字符串拆分为数组 我有这样的字符串: <h5>some text in header</h5> some other content, that belongs to header <p> or <a> or <img> inside.. not important... <h5>Second text header</h5> 标题中的某些文本 属于标题或内部的其他内容。。

我不太了解RegExp,我没有成功地将字符串拆分为数组

我有这样的字符串:

<h5>some text in header</h5>
some other content, that belongs to header <p> or <a> or <img> inside.. not important...
<h5>Second text header</h5>
标题中的某些文本
属于标题或内部的其他内容。。不重要。。。
第二个文本标题
因此,我尝试将文本字符串拆分为数组,其中键是来自标题的文本,内容是所有剩余内容,直到下一个标题,如:


数组(“header中的一些文本”=>“属于header的一些其他内容…”,…)

我建议查看PHP DOM。您可以从文档中读取/创建DOM。

我建议您查看PHP DOM。您可以从文档中读取/创建DOM。

我用过这个,并且很喜欢

你也可以用正则表达式

像这样的

/<h5>(.*)<\/h5>(.*)<h5>/s
/(.*)(.*)/s
但这只是第一种情况。你必须剪断绳子才能得到下一根

不管你怎么剪,我都看不到一条适合你的线。对不起

这是一个破烂的4号班轮

$chunks = explode("<h5>", $html);
foreach($chunks as $chunk){
  list($key, $val) = explode("</h5>", $chunk);
  $res[$key] = $val;
}
$chunks=explode(“,$html);
foreach($chunk作为$chunk){
列表($key,$val)=分解(“,$chunk);
$res[$key]=$val;
}

我用过这个,很喜欢

你也可以用正则表达式

像这样的

/<h5>(.*)<\/h5>(.*)<h5>/s
/(.*)(.*)/s
但这只是第一种情况。你必须剪断绳子才能得到下一根

不管你怎么剪,我都看不到一条适合你的线。对不起

这是一个破烂的4号班轮

$chunks = explode("<h5>", $html);
foreach($chunks as $chunk){
  list($key, $val) = explode("</h5>", $chunk);
  $res[$key] = $val;
}
$chunks=explode(“,$html);
foreach($chunk作为$chunk){
列表($key,$val)=分解(“,$chunk);
$res[$key]=$val;
}

不要通过
preg\u match
而是使用php类

例子:
不要通过
preg\u match
而是使用php类

例子:

最好使用html解析库。不要使用正则表达式;而是使用dompasseriagree。这样做的目的是什么?DOMDocument将把字符串转换成一个您可以轻松使用的对象。那么嵌入的头呢?h1内容中的h2?您是需要内容中的HTML标记,还是只需要它作为文本?最好使用HTML解析库。不要使用正则表达式;而是使用dompasseriagree。这样做的目的是什么?DOMDocument将把字符串转换成一个您可以轻松使用的对象。那么嵌入的头呢?h1内容中的h2?内容中是否需要HTML标记,或者您只需要将其作为文本使用?是否有使用regexp获取数组的快速方法?您可能希望在尝试将文档解析为DOM@Martynas看起来你可能想用不同的方式来解决这个问题。我只是想用regexp进行拆分,因此,使用regexp获取数组不是一种快捷的方法吗?在尝试将文档解析为数组之前,您可能希望在文档上运行html tidyDOM@Martynas看起来你可能想用不同的方式来解决这个问题。我只是想用regexp来拆分,所以工作量会少一些