我正在使用一个库作为参数,使用fopen
将其打开并使用fseek
和fread
这是构造函数的样子:
public function __construct($file) {
$this->file = $file;
$this->h = fopen($this->file, "r");
$stats = fstat($this->h);
$this->size = $stats['size'];
}
我想给这个构造函数的数据来自一个数据库,所以基本上我有一个带有一些文本的变量。
有没有办法从包含数据的变量中模拟文件?
我尝试使用php://memory
流而没有任何运气($stats = fstat($this->h)
= 0):
$data = " my string data";
$virtualfile = 'php://memory';
$h = fopen($path, "rw+");
fwrite($h, $data);
$lib = new MyLib($virtualfile);
有什么想法吗?
由于
答案 0 :(得分:2)
您可以使用data:网址包装
$data = " my string data";
$virtualfile='data:text/plain;base64,'.base64_encode($data);
$lib = new MyLib($virtualfile);
答案 1 :(得分:0)
fopen
返回一个指向该文件的$h
指针 - 您应该将此指针传递给您的类以继续处理它,所以:
$lib = new MyLib($h);
和构造函数:
public function __construct($h) {
$this->h = $h;
$stats = fstat($this->h);
$this->size = $stats['size'];
}