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.
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://
- yourfopen()
call should just have the path to the file. Something likefopen('/path/to/testfile.txt')