Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как правильно заменить строку с preg_replace на preg_replace_callback?

Как правильно заменить строку с preg_replace на preg_replace_callback?


     20.04.2017    Все вопросы » Общие вопросы по PHP    420

вопрос
Помогите пожалуйста с решением данной проблемы.

В коде show.short.php есть следующая строка
$row['short_story'] = preg_replace("#\[hide_group=(.*?)\](.*?)\[/hide_group\]#ies", "hide_grp('$1', '$2')", $row['short_story']);


в браузере выдаёт ошибку:

\engine\modules\show.short.php on line 677 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in

Как правильно заменить строку с preg_replace на preg_replace_callback чтоб всё работало?

Ответа пока нет


3 комментария

vitnet
Эксперт

vitnet - 21 апреля 2017 09:26 -

Не проверял, пробуйте
$row['short_story'] = preg_replace_callback("#\[hide_group=(.*?)\](.*?)\[/hide_group\]#is", "hide_grp", $row['short_story']);

function hide_grp($matches=array()) {
	global $member_id, $user_group;

	if( empty($matches[1]) ) return false;

	$grp = explode(",", $matches[1]);
	if( $member_id['user_group'] == 1 || in_array($member_id['user_group'], $grp) ) return stripslashes($matches[2]);
	else {
		$user_grpz = array();
		foreach ($grp as $i) {
			$user_grpz[] = $user_group[$i]['group_prefix'] . $user_group[$i]['group_name'] . $user_group[$i]['group_suffix'];
		}

		return "<div class=\"quote\">Текст доступен только для групп: " . implode(', ', $user_grpz) . "</div>";
	}
}

hostels
Юзер

hostels - 21 апреля 2017 10:31 -

***Комментарий удален***

hostels
Юзер

hostels - 21 апреля 2017 13:52 -

Теперь всё работает! Спасибо вам огромное!!!!!!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх