如何用preg_replace替换一行php代码

时间:2011-03-24 11:39:36

标签: php preg-replace

我的一些页面中有以下PHP代码行

<?php include("contactform.php"); ?>

我有一个粗略的CMS,我在那里交换用户可管理标签的代码行,我希望将这行代码转换为[联系人],以便人们可以在闲暇时添加或删除它。这是我有多远......

即。 $file = preg_replace('#<?php include("contactform.php"); ?>#i', "[contact]", $file);

$ file看起来像这样...

<h1 class="title">Title</h1>
<p>Text</p>
<?php include("contactform.php"); ?>

因此,当我们编辑文件而不是查看文件时,服务器没有删除PHP代码。


我对PHP很陌生,所以我想我真的很蠢,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

如果您想进行1:1字符串替换,请使用更简单的str_replace

$file = str_replace('<?php include("contactform.php"); ?>', "[contact]", $file);

使用preg_replace,您需要使用反斜杠转义?(等元字符:

$file = preg_replace('#<\?php include\("contactform.php"\); \?>#i', "[contact]", $file);

使用正则表达式只会提供任何优势,例如,如果你想让它更具弹性空白。在这种情况下,请使用\s+而不是文字空格。