Можно ли получить все изображения, которые не обернуты в ссылку? - PullRequest
0 голосов
/ 05 июля 2018

Можно ли найти все изображения, которые не обернуты в ссылку?

Пример содержимого:

$content = 'Something <a href="/blog">Blog</a>, lorem ipsum 
<img class="wp-image-1234" src="http://www.website.com/img/image.jpg"> 
dolor sit amet 

<a href="/images"><img class="2344" src="http://www.website.com/img/image.jpg"> Images</a> ipsum dolor lorem 

<img class="aligncenter size-medium wp-image-3201" src="http://www.website.com/wp-content/uploads/2018/07/image-18-300x200.jpg" alt="" srcset="http://www.website.com/wp-content/uploads/2018/07/image-18-300x200.jpg 300w, http://www.website.com/wp-content/uploads/2018/07/image-18-768x512.jpg 768w, http://www.website.com/wp-content/uploads/2018/07/image-18-128x85.jpg 128w, http://www.website.com/wp-content/uploads/2018/07/image-18-375x250.jpg 375w, http://www.website.com/wp-content/uploads/2018/07/image-18.jpg 800w" sizes="(max-width: 300px) 100vw, 300px">

<a href="/image">
<img class="aligncenter size-medium wp-image-3200" src="http://www.website.com/wp-content/uploads/2018/07/image-18-300x200.jpg" alt="" srcset="http://www.website.com/wp-content/uploads/2018/07/image-18-300x200.jpg 300w, http://www.website.com/wp-content/uploads/2018/07/image-18-768x512.jpg 768w, http://www.website.com/wp-content/uploads/2018/07/image-18-128x85.jpg 128w, http://www.website.com/wp-content/uploads/2018/07/image-18-375x250.jpg 375w, http://www.website.com/wp-content/uploads/2018/07/image-18.jpg 800w" sizes="(max-width: 300px) 100vw, 300px">
</a>';

Мое намерение состоит в том, чтобы вручную обернуть каждое изображение новой ссылкой на основе идентификатора, который я бы извлек из имени класса изображения "wp-image-xxxx" (Wordpress)

PHP язык, вот шаблон https://regexr.com/3s0jk

1 Ответ

0 голосов
/ 05 июля 2018

С DOMDocument / DOMXPath:

$doc = DOMDocument::loadHtml($content);
$selector = new DOMXPath($doc);
$query = '//img[not(parent::a)]';

foreach($selector->query($query) as $node) {
    echo $node->getAttribute('src'), PHP_EOL;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...