标签:php
我有一个带有注释和代码的php文件.
// Some comments
define('THING', 'thing1');
$variable = 'string1';
if ($statement === true) { echo 'true1'; }
我想知道编辑此文件以更改变量并随更改吐出文件的新版本的最佳方法.
// Some comments
define('THING', 'thing2');
$variable = 'string2';
if ($statement === true) { echo 'true2'; }
该文件很大.我可以编写一个函数,将一个巨大的字符串加到输出中,但是我对注释等所做的所有转义都会让人头疼.
我当时正在考虑包括文件,但这只会允许它的变量在另一个类中使用.
到目前为止,我唯一能想到的就是使用要更改的变量将文件的“骨架”版本(如下)写入文件中.我可以分配它们,但实际上将其全部转储回文件,就像上面的两个示例一样,使我逃脱了.
最好的方法吗?
// Some comments
define('THING', $thing);
$variable = $string;
if ($statement === true) { echo $true; }
解决方法:
我本来想回应@Prisoner的评论,但我看到您提到您正在使用限制.您可以使用strtr()进行基本模板化,如下所示:
$template = <<
hi there {{ name }}
it's {{ day }}. how are you today?
STR;
$vars = [
'{{ name }}' => 'Darragh',
'{{ day }}' => date('l'),
];
$result = strtr($template, $vars);
产生以下字符串:
"hi there Darragh
it's Monday. how are you today?"
然后,您可以将结果写入文件,回显等等.
对于上面的特定示例:
$template = <<
define('THING', '{{ const }}');
$variable = '{{ variable }}';
if ($statement === true) { echo '{{ echo }}'; }
STR;
$vars = [
'{{ const }}' => 'thing1',
'{{ variable }}' => 'string1',
'{{ echo }}' => 'true1',
];
echo $result = strtr($template, $vars);
产量:
"<?php
define('THING', 'thing1');
$variable = 'string1';
if ($statement === true) { echo 'true1'; }"
希望这可以帮助 :)
标签:php
来源: https://codeday.me/bug/20191120/2041832.html