Regexp регулярка обработки картинок в тексте (например, для турбо-страниц Яндекса)

04.12.2017  14:12

Недавно Яндекс выкатил и беты турбо-страницы и в мобильном поиске такие страницы стали открываться непосредственно на самом Яндексе без перехода на сайт.

Возникла проблема с ограничением по количеству картинок — не более 500. А у меня в каждой записи 30-100 фото.
Причём, Яндекс требует, чтобы картинки были обёрнуты тегом figure. Окей, обернём всё картинки тегом и выкинем лишние, оставим первые 7 в каждой записи.

Регулярка такая:
$cimgpage = 7;//оставлять в каждом посте не более 7 картинок
if(preg_match_all("/< a([^>]+) >< img([^>]+) >< \/a >/uis",$btext_yandex,$out_img_ar, PREG_PATTERN_ORDER)){
	// в регулярке надо удалить все пробелы
	// echo '
';
	// print_r($out_img_ar);
	if (!empty($out_img_ar[0]) && is_array($out_img_ar[0])) {
		$cimg = 0;
		foreach($out_img_ar[0] as $kimg => $vimg) {
			//в $out_img_ar[0] будет массив картинок со ссылками, если надо - можно посчитать их count
			if ($cimg > $cimgpage) {//выкинем лишние картинки
				$btext_yandex = str_replace($vimg,'< a href="урл" >Изображение доступно только на сайте< /a >.',$btext_yandex);
				//и тут удалить пробелы
			}
			else {//остальные обернём тегом
				//тут можно провести любые манипуляции с картинками, например, обернуть слоем или, 
				//как в моём случае - оборачиваю тегом figure для турбо-страниц Яндекса
				$btext_yandex = str_replace($vimg,'< figure >'.$vimg.'< /figure >',$btext_yandex);
				//и тут удалить пробелы
			}
			$cimg++;
		}
	}
}


Готово! Можно легко модернизировать под свои нужды, обрабатывать только картинки (без учёта ссылок), оборачивать картинки слоем или видоизменять сами картинки (html код img).

Из смежной тематики: RSS для турбо-страниц страниц Яндекса


перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): PHP 25  web-программирование 41  регулярные выражения 5  Яндекс 6  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)




последние записи в блоге