我尝试了不同的方式,用 PHP 中的元字符替换另一个文本的元字符的摘录。我知道,这看起来很简单,但我尝试了很多次但没有得到它。图案:$Sel = 'anyvalues';替代品:$Sel = 'one other';主题:<?php $Sel = 'anyvalues';我深入尝试以不同的顺序使用 addlashes() 和 preg_quote() 方法,但它不起作用。我需要它作为代表而不是寻找任何解决方法。这些值中的每一个都位于不同的文件中,即模式位于一个文件中,替换位于另一个文件中,主题也位于另一个文件中。
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
您是否将您的模式包装在分隔符中?
$pattern = '$Sel = "anyvalues_containing_delimiter_/";';
$replacement = '$Sel = "one other";';
$subject = '<?php $Sel = "anyvalues_containing_delimiter_/";';
echo preg_replace(sprintf('/%s/', preg_quote($pattern, '/')), $replacement, $subject);
模式的内容是唯一需要转义的内容,因此preg_quote调用。第二个参数是包装模式的分隔符(sprintf这里是做什么的),因此模式内容中的任何出现也可以在应用之前进行转义。
编辑:我已经修改了片段以涵盖文件内容中分隔符的出现。
第二次编辑:将代码从链接片段移到答案本身。
- 1 回答
- 0 关注
- 73 浏览
添加回答
举报
0/150
提交
取消