我有一个很好的搜索,没有找到任何与我的问题相关的内容,所以请不要在没有向我显示相关示例的地方投票...
尝试将模板文件构建为文本文档以简化其他人以后修改它,但我无法弄清楚如何让PHP识别其中的变量。
我想要的工作:
//template.txt
Every time I find $foo,
I get a little $bar,
template text.
注意:换行符对位置至关重要。
//handler.php
$foo = 'Beer';
$bar = 'Excited';
$file = file('template.txt');
foreach ($file as $line) {
echo $line;
}
我希望这返回:
Every time I find Beer,
I get a little Excited,
template text.
但它正在逃避变量标记($), 并且正在返回:
Every time i find $foo,
I get a little $bar,
template text.
我尝试用以下代码替换str:
if (strpos($line, '\$foo')) {
str_replace('\$foo', $foo, $line);
}
(尝试使用和不使用$符号,以及此处的许多变体) 充其量我可以让它识别变量名称,但它不是替换。
有没有人有这方面的经验?
在网上找不到太多信息。 任何帮助将不胜感激。
答案 0 :(得分:1)
当你使用单引号时,它会自动转义那里的所有内容,所以你告诉它要替换\ $ foo而不是$ foo
str_replace('$foo', $foo, $line);
你也不需要if语句,如果它找不到它,它无论如何都不会做任何事情。
如果你有更多的变量你可以设置一对数组,而不是逐行迭代它,只需立即将整个字符串抛出它
$file = file('template.txt');
$search = array('$foo', '$bar');
$replace = array('Beer', 'Excited');
$file = str_replace($search, $replace, $file);
foreach ($file as $i) {
echo $i;
}