我有2个文件。
带有大量PHP和HTML内容的 LaTeX
。
<?php
putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
putenv("CASPERJS_EXECUTABLE=/usr/local/bin/casperjs");
putenv("SLIMERJS_EXECUTABLE=/usr/local/bin/slimerjs");
putenv("DYLD_LIBRARY_PATH");
echo passthru('/usr/bin/xvfb-run /usr/local/bin/casperjs --ssl-protocol=any --proxy-type=auto --engine=slimerjs casperjsscript.js 2>&1');
?>
我在其中包含test.zt
以显示其内容。
我现在要做的是将index.php
内容加载到变量中(或者能够暂时编辑它的东西)。完成后,我想使用test.zt
函数临时更改test.zt
文件中的某些文本。 我不想覆盖原始的str_replace()
源文件。
之后,我想向访问者显示已更改的文件内容。
注意:代码包含PHP代码,页面也需要执行该PHP代码。
我已经尝试用test.zt
打开文件,然后回显出内容,但它没有执行内容的PHP端。
是否有可能实现这一目标?
答案 0 :(得分:1)
基本上,你要问的是eval
做了什么。但在你使用它之前,请对有什么缺点进行一些研究。
不应使用str_replace
来“更改某些文本”,而应该只包含一个普通的PHP文件,并使用主脚本中的变量来输出部分内容这需要是动态的。
答案 1 :(得分:0)
运行页面时,请获取test.tz内容,更改它,将其写入临时文件中的磁盘,然后包含该临时文件,然后将其删除。或者你可以离开它并继续覆盖它,只要它不包含任何重要的东西。
你的问题太模糊了,虽然很难给出一个好的答案。
答案 2 :(得分:0)
您是否尝试过php eval功能?
$data = file_get_contents('test.zt');
eval($data);
注意:强>
eval()语言结构非常危险,因为它允许 执行任意PHP代码。因此不鼓励使用它。如果你 仔细确认除了使用它之外别无选择 构建时,要特别注意不要传递任何用户提供的数据 没有事先正确验证它就进入它。
答案 3 :(得分:-1)
你可能正在寻找这个:
ob_start();
include "test.zt";
$contents = ob_get_contents();
ob_end_clean();
echo str_replace("some", "text", $contents);
这是PHP手册条目: http://php.net/manual/en/function.ob-get-contents.php