@Alk90
php, mysql, jquery, css, html, api

Как из callback функции вернуть данные?

Всем привет!
С помощью функции preg_replace_callback в тексте ищутся BB коды изображений. В BB коде хранятся не ссылки, а имена изображений, поэтому я передаю массив объектов картинок в callback функцию с помощью use. Совпадения ищутся в тексте и если совпадение не найдено, считается, что изображение не было вставлено в текст и его нужно отобразить после текста. Поэтому из callback функции нужно как-то вернуть во внешний код данные о изображениях которые небыли найдены, но как это сделать я никак не пойму. Пните в нужную сторону плз.

$unused_image = [];
foreach ($images as $key => $image){
	$text = preg_replace_callback("#\[IMG=?\]?([^\[\]]+)\]?(?:\[\/IMG\])?#is", function($match) use($image){
		if($image instanceof ImageEntity){
			if($match[1] == $image->getName()){
				$url = $image->getUrl();
				return '<p><figure><img src="'.$url.'"></figure>';
			}
		}
		$unused_image[] = $image; // внешняя переменная никак не изменяется, даже если ставлю global
		return '';
	}, $text);
}
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
DevMan
@DevMan
заведите переменную снаружи и прокиньте ее в колбэк через юз.
https://ideone.com/5NxwXT
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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