如何从外部文件显示/执行PHP?

时间:2015-06-17 22:37:33

标签: php

我有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端。

是否有可能实现这一目标?

4 个答案:

答案 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