Can't open anything with fopen

1.1k views Asked by At

I was trying to set up some fopen function

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

For some reason there's still an error. I've done following steps to fix this:

  • checked php.ini and switched on allow_url_fopen, save_mode + restarted apache
  • added even chmod 777 (that's test passwd protected server, so done it temporarily)
  • was even try to fopen some existing file in the same location but still getting an error
  • error_reporting doesn't show anything (when removed die statement to test) but logs are showing: [error] [xxx] PHP Warning: fopen(): Invalid php:// URL specified in /var/www/xxx/xxx/all.php on line 24, referer: http://xxxxxxxxxx/xxxx/all.php [error] [xxx] PHP Warning: fopen(php://testdir): failed to open stream: operation failed in /var/www/xxx/xxx/all.php on line 24, referer: http://xxxxx/xxxx/all.php

'xxx' changed by myself here.

1

There are 1 answers

0
yrosen On

That's not what php:// is for. It allows access to specialized streams such has stdin/stdout/etc, not regular file access.

Don't bother using php:// - your fopen() call should just have the path to the file. Something like fopen('/path/to/testfile.txt')