1

该字符串具有 html 内容。

例如:

<ul> 
  <li>....</li>
  <li>....</li> 
  <li>....</li> 
</ul>

php中是否有任何函数可以将字符串转换为这样的数组

array(
  [0] => '<ul>',
  [1] => '<li>....</li>',
  [2] => '<li>....</li>',
  [3] => '</ul>'
)

任何人都可以指导我。

4

5 回答 5

0

您可以使用 SimpleXML 解析 HTML,然后将其转换为数组

$result = (array) simplexml_load_string($htmlDocument);

http://www.php.net/manual/en/function.simplexml-load-string.php

$ul = <<<HTML
<ul> 
  <li>....</li>
  <li>....</li> 
  <li>....</li> 
</ul>
HTML;

$result = (array) simplexml_load_string($ul);

print_r($result);
于 2013-04-08T08:50:13.760 回答
0
$a='<ul> 
<li>....</li>
<li>....</li> 
<li>....</li> 
</ul>';


$as = explode("\n", $a);
print_r($as);

然后

Array
(
    [0] => <ul> 
    [1] => <li>....</li>
    [2] => <li>....</li> 
    [3] => <li>....</li> 
    [4] => </ul>
)
于 2013-04-08T08:46:12.900 回答
0

$str是您的原始字符串。

$array = explode("\n", $str);
于 2013-04-08T08:46:21.387 回答
0

这取决于你实际上想要做什么。

如果您实际上是在尝试按行分隔字符串,则相当简单:

$array = explode("\n", $htmlString);
foreach ($array as $key => $value) {
    $array[$key] = trim($value);
}

print_r($array); // Use this to dump out the value of $array.

但是,如果您试图以一种有意义的方式解析 HTML,那么就不是那么容易了。您需要改用 DOMDocument 或专用的 HTML/XML 解析器。

至于原因,请阅读以下内容:

RegEx 匹配打开的标签,XHTML 自包含标签除外

于 2013-04-08T08:47:03.717 回答
0

我认为您需要一个用于通用解决方案的 html praser

尝试链接 http://code.google.com/p/php-html2array/

下载类文件 http://code.google.com/p/php-html2array/downloads/detail?name=class.htmlParser%20v1.02.zip&can=2&q=

于 2013-04-08T09:05:09.183 回答