首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Runkit_Sandbox打开文件

如何使用Runkit_Sandbox打开文件
EN

Stack Overflow用户
提问于 2014-06-27 14:57:00
回答 1查看 175关注 0票数 1

我使用以下代码使用Runkit_Sandbox打开一个文件:

代码语言:javascript
复制
<?php
$options = array(
  'open_basedir'=>'/var/www/html/test/',
  'allow_url_fopen'=>'true',
);
$sandbox = new Runkit_Sandbox($options);
$sandbox->ini_set('html_errors',true);

$sandbox->fopen('/var/www/html/test/data.txt', 'r');

?>

我已经使用适当的权限在'/var/www/html/test/‘目录中创建了data.txt文件。但是,我仍然会看到以下错误:

代码语言:javascript
复制
Warning: Runkit_Sandbox::__call(): Unable to translate resource, or object variable to current context. in /var/www/html/test/write1.php on line 10

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-27 15:55:35

fopen()返回一个资源。资源和对象不能在解释器之间交换。基本做法是在沙箱内打开文件,并要求将文件句柄从沙箱返回到当前上下文中。这是不可能的

您可以使用eval():

代码语言:javascript
复制
$sandbox->eval('
  $f = fopen("/var/www/html/test/data.txt", "r");
  // ... rest of the code
');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24454904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档