字符串PHP中的preg_replace常量

时间:2018-03-06 20:22:49

标签: php preg-replace constants

我定义了常量:

defined('site_name') OR define('site_name', 'Ses');

如何用常量替换字符串中的变量?

defined('site_name') OR define('site_name', 'Ses');
$string = 'Some string with {site_name} constant';

$result = preg_replace("/{.*?}/", CONSTANT, $string);

1 个答案:

答案 0 :(得分:2)

您需要使用捕获组()捕获常量,在回调中使用它并使用constant使用字符串名称访问常量:

$result = preg_replace_callback("/{(.*?)}/",
                                function($m) {
                                    return constant($m[1]);
                                }, $string);