Я работаю на пути, чтобы передать переменные в уведомлении, и для достижения этой цели, я в настоящее время переживает сообщения один раз следующим способом:Регулярное выражение для замены
private static function set($var, $content, &$message) {
$message = str_replace("{{" . $var . "}}", $content, $message);
}
Это правильно соответствует ; если у меня есть {{name}} 'внутри сообщения, и я запускаю метод ниже, все экземпляры' {{name}} 'правильно заменяются' Johnny Test '. Splendid.
self::set('name', 'Johnny Test', $message);
Я сейчас стремится расширить это, чтобы обеспечить возможность поля шаблона не переходила в уведомлении. То есть, если мне нужно «имя» и «электронная почта» для конкретного уведомления, но только «имя» будет передано, я хочу, чтобы значение по умолчанию («Нет адреса электронной почты») было передано (вместо уведомления, показывающего «{ {Эл. адрес}}').
С этой целью я придумал следующее с помощью this tool:
$returnValue = preg_replace(
'/\\{\\{.*?\\:\\s*?[\'"](.*?)[\'"]\\s*?\\}\\}/',
'$1',
'{{color : "No color selected"}}'
);
Однако, это не надлежащим образом совпадают. Вместо $returnValue
, содержащего «Не выбран цвет», вместо этого он содержит полный цвет «{{цвет:« Не выбран цвет »}} '.
Что мне не хватает?
Ха-ха, да! Оказалось, что инструмент, который я использовал, добавлял лишнюю обратную косую черту (я закончил использование writecodeonline, чтобы написать его, и все это сработало). Спасибо, что заметили это! –