3v4l.org

run code in 300+ PHP versions simultaneously
<?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=https://dirty.ru/robots.txt'; 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;
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
Deprecated: Return type of StreamFilter::filter($in, $out, &$consumed, $closing) should either be compatible with php_user_filter::filter($in, $out, &$consumed, bool $closing): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/Yjm5O on line 5 Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in /in/Yjm5O on line 34 Warning: file_get_contents(): open_basedir restriction in effect. File(https://dirty.ru/robots.txt) is not within the allowed path(s): (/tmp:/in:/etc) in /in/Yjm5O on line 34 Warning: file_get_contents(php://filter/read=asd/resource=https://dirty.ru/robots.txt): Failed to open stream: operation failed in /in/Yjm5O on line 34 bool(false)
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Deprecated: Return type of StreamFilter::filter($in, $out, &$consumed, $closing) should either be compatible with php_user_filter::filter($in, $out, &$consumed, bool $closing): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/Yjm5O on line 5 Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in /in/Yjm5O on line 34 Warning: file_get_contents(): open_basedir restriction in effect. File(https://dirty.ru/robots.txt) is not within the allowed path(s): (/tmp:/in:/etc) in /in/Yjm5O on line 34 Warning: file_get_contents(php://filter/read=asd/resource=https://dirty.ru/robots.txt): Failed to open stream: operation failed in /in/Yjm5O on line 34 bool(false)
Output for 8.0.0 - 8.0.12, 8.0.14 - 8.0.30
Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in /in/Yjm5O on line 34 Warning: file_get_contents(): open_basedir restriction in effect. File(https://dirty.ru/robots.txt) is not within the allowed path(s): (/tmp:/in:/etc) in /in/Yjm5O on line 34 Warning: file_get_contents(php://filter/read=asd/resource=https://dirty.ru/robots.txt): Failed to open stream: operation failed in /in/Yjm5O on line 34 bool(false)
Output for 8.0.13
Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in /in/Yjm5O on line 34 Warning: file_get_contents(php://filter/read=asd/resource=https://dirty.ru/robots.txt): Failed to open stream: operation failed in /in/Yjm5O on line 34 bool(false)
Output for 7.3.32 - 7.3.33, 7.4.33
Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in /in/Yjm5O on line 34 Warning: file_get_contents(php://filter/read=asd/resource=https://dirty.ru/robots.txt): failed to open stream: operation failed in /in/Yjm5O on line 34 bool(false)
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.32
Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in /in/Yjm5O on line 34 Warning: file_get_contents(): open_basedir restriction in effect. File(https://dirty.ru/robots.txt) is not within the allowed path(s): (/tmp:/in:/etc) in /in/Yjm5O on line 34 Warning: file_get_contents(php://filter/read=asd/resource=https://dirty.ru/robots.txt): failed to open stream: operation failed in /in/Yjm5O on line 34 bool(false)

preferences:
226.57 ms | 404 KiB | 330 Q