3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class StreamFilter extends php_user_filter { public function filter($in, $out, &$consumed, $closing) { //var_dump('FILTERING!'); while ($bucket = stream_bucket_make_writeable($in)) ; if ($closing || feof($this->stream)) { $streamUri = substr(stream_get_meta_data($this->stream)['uri'], strlen('php://filter/read=asd/resource=')); //$buffer = strtoupper(file_get_contents($streamUri)); $buffer = 'HA'; $bucket = stream_bucket_new($this->stream, $buffer); stream_bucket_append($out, $bucket); return PSFS_PASS_ON; } return PSFS_FEED_ME; } } stream_filter_register('asd', 'StreamFilter'); function shut() { $stream = 'php://filter/read=asd/resource=/home/vagrant/test-register-shutdown-function/test.txt'; $stream = 'php://filter/read=asd/resource=/in/Yjm5O'; var_dump(file_get_contents($stream)); //$stream = 'php://filter/read=string.toupper/resource=/home/vagrant/test-register-shutdown-function/test.txt'; //var_dump(file_get_contents($stream)); } register_shutdown_function('shut'); /* class A { public function __destruct() { } } new A(); */ die;
based on Tkb0m
Output for 5.6.28, 7.0.20 - 7.2.0
Warning: file_get_contents(php://filter/read=asd/resource=/in/Yjm5O): failed to open stream: operation failed in /in/oprfS on line 34 bool(false)
Output for 5.4.28 - 5.6.21, 7.0.0 - 7.0.6
string(0) ""
Output for 5.4.12 - 5.4.27
string(2) "HA"
Output for 5.3.22 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/oprfS on line 12
Process exited with code 255.