PHP взорвать строку с помощью HTML-тега - PullRequest
2 голосов
/ 22 сентября 2011

Предположим, строка $ 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>';
)

Ответы [ 2 ]

5 голосов
/ 22 сентября 2011

Использование 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);
5 голосов
/ 22 сентября 2011
<?php
$ps    = array();
$count = preg_match_all('/<p[^>]*>(.*?)<\/p>/is', $a, $matches);
for ($i = 0; $i < $count; ++$i) {
    $ps[] = $matches[0][$i];
}

Это может быть один из способов. Или вы можете использовать цикл с strpos

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...