加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

包含“php:// memory”流

发布时间:2020-12-13 14:08:06 所属栏目:PHP教程 来源:网络整理
导读:我正在为一个浏览器应用程序编写一个系统,它将一些特定的 PHP脚本存储在一个数据库中,然后将它们拉出来并在需要时执行它们.起初我尝试使用exec()和管道输出一个脚本的输出,该脚本将脚本从数据库中取出并打印出来.这在一个用例中起作用,但不是全部,并且无论如
我正在为一个浏览器应用程序编写一个系统,它将一些特定的 PHP脚本存储在一个数据库中,然后将它们拉出来并在需要时执行它们.起初我尝试使用exec()和管道输出一个脚本的输出,该脚本将脚本从数据库中取出并打印出来.这在一个用例中起作用,但不是全部,并且无论如何都感觉很脆弱,所以我正在寻找一种更好的方法.

我现在正试图通过在内存中使用PHP文件流来实现这一目标.例如:

$thing = <<<'TEST'
<?php

$thing = array();

print "Testing code in here.";
var_dump($thing);

?>
TEST;

$filename = "php://memory";

$fp = fopen($filename,"w+b");
fwrite($fp,$thing);
//rewind($fp);

fclose($fp);

include "php://memory";

但是,执行脚本时不会打印任何内容.这是否可能通过这种方式,如果没有,还有另一种方法吗?我正在努力避免编写临时文件并从中读取文件,因为我确信访问文件系统会减慢速度.是否有一个我可以提供给“include”的URL,以便它将读取内存流,就像它是一个文件一样?

我不认为eval()会这样做,因为,如果我没记错的话,它只限于一行.

另外,请不要“eval = include = hell”答案.非管理员用户无权编写存储在数据库中的脚本,我知道这需要对我的应用程序的生命周期进行特殊处理.

你需要使用 stream_get_contents来读取php://内存流.您不能直接包含它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读