Я использую свои собственные CMS с нуля, так что, я буду добавлять полезные функции для моей системы, но я застрял на этом:preg_replace не получение правильных данных
Фраза загружается из файла на языке массив, в данном случае $lang['sign']['server'] = 'Sign in with your {{servername}} registered account:';
, а затем, по функции, {{servername}}
должен быть заменен на $config['servername']
.
Что я до сих пор в моем классе функций заключается в следующем:
public function replaceTags($text)
{
global $config;
return preg_replace("/{{(.*?)}}/" , $config[strtolower("$1")], $text) ;
}
Im вызов этой функции здесь: $main->set('ssocial', $FUNC->replaceTags($lang['sign']['social']));
, но результат Sign in with your registered account:
вместо Sign in with your "Server Name Goes Here" registered account
.
Любые идеи о том, почему preg_replace не извлекает значение?
Кроме того, когда $config[”$1”]
находится внутри '', как это '$config[”$1”]'
, выход Sign in with your $config[”servername”] registered account:
, так что у меня нет никаких подсказок о том, что не так.
Заранее спасибо.
'preg_replace ('/\{\{(.*?)\}\}/' ...)' может быть? '{}' означает повторение совпадения в RegExps ... хотя я не уверен, что он потерпит неудачу, если не будет что-то, что можно было бы сопоставить раньше (на самом деле не проверял). – CD001
Что касается '$ config [" $ 1 "], находится внутри '' подобно этому '$ config [" $ 1 "]'' ..., что и следовало ожидать, апострофы обозначают неинтерполированные строки (например, $ sausage будет обрабатываться буквально как $ колбаса * не * переменная $ колбаса). – CD001
Вывод аналогичен изменению регулярного выражения, пустым; я пробовал с разными вещами (раньше с% tag%), но каждый раз вывод пуст. – pily