如何将{{ }}
字符更改为.php
页面上的等效回显函数,几乎与Laravel的blade.php
页面完全相同(如果可能的话)?
我环顾四周,唯一与我似乎发现的相似的问题是“如何使用没有Laravel的Laravel刀片”这不是我想要的。
修改
由于apokryfos的回答,我发布了这些新数据。
这是我正在运行的功能:
function View($view)
{
$src = __DIR__.'/../../views/'.$view.'.view.php';
$destination= __DIR__.'/../../views/'.$view.'.view.php';
file_put_contents(
$destination,
str_replace(["{{","}}" ],[ "<?=", "?>" ], file_get_contents($src))
);
echo file_get_contents($destination);
}
从控制器,我使用此代码来调用该函数View('welcome');
。它的工作原理是检索页面,但唯一的问题是它不会在页面上发布变量,而直接在URL中访问页面就可以了。
这是我页面上的代码:
<?php
$item = 11;
?>
a php variable is {{ $item }}
它发布a php variable is
,然后在页面上没有任何内容,不确定原因。
答案 0 :(得分:3)
简单的事情是:
$src = "sourcefile.php";
$destination= "compiledsourcefile.php";
file_put_contents(
$destination,
str_replace(["{{","}}" ],[ "<?=", "?>" ], file_get_contents($src))
);
include $destination;
直接回应:
$src = "sourcefile.php";
$text = str_replace(["{{","}}" ],[ "<?=", "?>" ], file_get_contents($src))
eval("?>".$text); //Things get a bit ugly here
echo $text;
"?>"
的原因是因为eval默认以“PHP模式”启动,但正确编写的PHP文件将明确设置进入PHP模式所需的区域,默认情况下以HTML模式启动。
注意:大多数人会说使用eval
是不好的,虽然我同意使用eval
取消选中确实很糟糕,但是在从PHP文件中读取的代码上使用它写入与在该文件上执行include
完全相同,并没有那么糟糕。
答案 1 :(得分:-2)
您可以使用:
<?= $var ?>
与以下内容相同:
<?php echo $var ?>