将具有html实体的字符串转换为相同顺序的数组

时间:2012-04-25 13:19:15

标签: php regex

我有一个这种形式的字符串:

<strong>dsds </strong><em>sdqsd </em><span style='text-decoration: underline;'>test</span>

我希望将它放在一个关联数组中:

array('strong' => 'dsds' , 'em' => 'sdqsd' , 'underline' => 'test');

这个数组中元素的顺序必须与它们在字符串中的顺序相同。

这意味着如果我有例如:

<span style='text-decoration: underline;'>test</span><strong>dsds </strong><em>sdqsd </em>

我得到:

 array( 'underline' => 'test', 'strong' => 'dsds' , 'em' => 'sdqsd');

我尝试通过在循环中使用strpos来实现它,但如果我有一个大字符串,则会进行大量的迭代,那么使用正则表达式是否有更简单的方法?

感谢。

1 个答案:

答案 0 :(得分:1)

1,只有在每个解析的HTML语句中每种类型只有一个tage时,才能使用标记名作为数组索引。

2,也许这个图书馆会有所帮助:http://simplehtmldom.sourceforge.net/

3,或者使用正则表达式创建自定义解析器。由于CPU性能要求很高,我真的不会建议这个解决方案。