Как узнать количество совпадений ($matches) в функции preg_replace_callback()?

Назначение данного кода это поиск в тексте (статье) изображений и замена содержимого атрибута "alt" на название статьи.
Если фото одно: в alt выводим "Название статьи";
Если фото несколько: в alt выводим "Название статьи Фото№...";
Как можно узнать количество $matches до выполнения функции?
Чтобы можно было в код добавить условие: если совпадение одно(то есть картинка одна), то выводим по один текст "Название статьи", если совпадений два и более, то выводим "Название статьи Фото№...".
$GLOBALS['counter'] = 1;
	$GLOBALS['posttitle'] = get_the_title();	
		$new_content = preg_replace_callback(
			'|(<img class="image-icon.*alt=")(.*)(".*\/>)|U',
			function ($matches){
				$matches[2] = $GLOBALS['posttitle'].', Фото№ '.$GLOBALS['counter'];
				$GLOBALS['counter']++;
				return $matches[1].$matches[2].$matches[3];
			},
			$content
		);
  • Вопрос задан
  • 289 просмотров
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Посчитать все совпадения для вашей регулярки:
php.net/manual/ru/function.preg-match-all.php

Да, и не нужно использовать $GLOBALS, чтобы передавать значения в анонимную фукнцию. Используйте use:
php.net/manual/ru/functions.anonymous.php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы