2015-06-17 69 views
-1

我试图建立一些fopen函数无法打开用的fopen

$path = 'php://testdir'; 
$h = fopen($path, "rw+") or die("Error"); 
fwrite($h, "test"); 
fseek($h, 0); 
echo stream_get_contents($h); 

出于某种原因,仍然有错误什么。我已经做了以下步骤来解决这个问题:

  • 检查php.ini并开启了allow_url_fopen,save_mode +重启apache的
  • 添加甚至搭配chmod 777(这是测试passwd中受保护的服务器,所以暂时做到了)
  • 甚至试图打开一些现有的文件在同一位置,但仍然出现错误
  • error_reporting不显示任何内容(当删除die语句测试),但日志显示: [error] [xxx] PHP警告: fopen():无效的php://第24行/var/www/xxx/xxx/all.php中指定的URL,referer:http://xxxxxxxxxx/xxxx/all.php [错误] [XXX] PHP警告:的fopen(PHP:// TESTDIR):未能打开流:操作/var/www/xxx/xxx/all.php失败的线24,引用者:http://xxxxx/xxxx/all.php

'xxx'由我自己在这里改变。

回答

1

这不是php://的用途。它允许访问专门的流,例如stdin/stdout/etc,而不是常规的文件访问。

不要打扰使用php:// - 您的fopen()调用应该只是文件的路径。类似于fopen('/path/to/testfile.txt')

+0

是的,你说得对:php://不能在这里使用。 – Adam

相关问题