带条件检查的字符串到数组


String to array with condition checking

字符串有一个html内容。

例如:

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

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

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

谁能给我指路

$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>
)

$str是您的原始字符串。

$array = explode("'n", $str);

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

如果你想用行分隔字符串,这很简单:

$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自包含标签

您可以使用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);

我认为你需要一个通用的HTML解决方案

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

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