preg_replace任何东西,包括点和斜线

时间:2012-08-25 12:18:15

标签: php regex preg-replace

对于小型模板引擎,我正在尝试使用preg_replace替换

{INCLUDE:dir/file.inc.php}

使用适当的PHP等价物。

我尝试过使用以下内容,但是包含路径中的/会导致“除以零”错误:

$template = preg_replace('~\{INCLUDE:(.*?)}~', '<?php echo $1; ?>', $template);

(preg_replace中的echo用于调试目的,最终将包含在内)

当我从包含路径中删除/时(所以它只是file.inc.php),它仍会删除所有点。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,我认为这应该可行

$template = preg_replace('~{INCLUDE:(.*?)}~', '<?php include \'$1\'; ?>', $template);

您的问题是由不加引号的$ 1引起的。