Извлечь все изображения из статьи Joomla - PullRequest
1 голос
/ 17 февраля 2012

У меня есть этот код, который извлекает первое изображение из статьи в Joomla:

<?php preg_match('/<img (.*?)>/', $this->article->text, $match); ?>
<?php echo $match[0]; ?>

Есть ли способ извлечь все изображения, которые есть в статье, а не только одно?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Сначала я могу предложить не использовать регулярные выражения для разбора HTML. Вы должны использовать соответствующий анализатор , например DOMDocument :: loadHTML , который использует libxml.

Затем вы можете запросить нужные теги. Примерно так может работать (не проверено):

$doc = new DOMDocument; 
$doc->loadHTML($htmlSource);

$xpath = new DOMXPath($doc);
$query = '//img';
$entries = $xpath->query($query);
foreach ($entries as $entry) {
  // $entry->getAttribute('src')
}
1 голос
/ 17 февраля 2012

Используйте preg_match_all . И вы захотите изменить шаблон так, чтобы он учитывал завершающий символ '/' внутри тега img.

$str = '<img src="asdf" />stuff more stuff <img src="qwerty" />';
preg_match_all('/<img (.*?)\/>/', $str, $matches);
print_r($matches);

Array
(
    [0] => Array
        (
            [0] => <img src="asdf" />
            [1] => <img src="qwerty" />
        )

    [1] => Array
        (
            [0] => src="asdf" 
            [1] => src="qwerty" 
        )

)
...