假设字符串$ a成立
<p>Phasellus blandit enim eget odio euismod eu dictum quam scelerisque.
</p><p>Sed ut diam nisi.</p><p>Ut vestibulum volutpat luctus.</p>
如何将其分解为此数组
Array(
[0] = '<p>Phasellus blandit enim eget odio euismod eu dictum quam scelerisque.</p>';
[1] = '<p>Sed ut diam nisi. Ut vestibulum volutpat luctus.</p>';
[2] = '<p>Ut vestibulum volutpat luctus.</p>';
)
答案 0 :(得分:5)
<?php
$ps = array();
$count = preg_match_all('/<p[^>]*>(.*?)<\/p>/is', $a, $matches);
for ($i = 0; $i < $count; ++$i) {
$ps[] = $matches[0][$i];
}
这可能是一种方式。或者您可以使用strpos
的循环答案 1 :(得分:5)
使用DOMDocument和DOMXPath(如果只需要一个简单的解决方案,则有点过分):
$dom = new DOMDocument();
$dom->loadHTML($a);
$domx = new DOMXPath($dom);
$entries = $domx->evaluate("//p");
$arr = array();
foreach ($entries as $entry) {
$arr[] = '<' . $entry->tagName . '>' . $entry->nodeValue . '</' . $entry->tagName . '>';
}
print_r($arr);