Как узнать количество совпадений ($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
		);
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Посчитать все совпадения для вашей регулярки:
php.net/manual/ru/function.preg-match-all.php

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
02 мая 2024, в 23:29
1500 руб./в час
02 мая 2024, в 23:16
7500 руб./за проект
15 апр. 2024, в 22:14
30000 руб./за проект