3v4l.org

run code in 300+ PHP versions simultaneously
<?php $path = "/tmp/foo.txt"; file_put_contents($path, "123456"); $file = fopen($path, "r"); flock($file, LOCK_SH | LOCK_NB); `php -r "var_dump(file_put_contents('$file', 'baz'));"`; // should fail because locked clearstatcache(FALSE, $path); $fileSize = filesize($path); // should return 6 bytes but returns 0 echo $fileSize . "\n"; $contents = fread($file, $fileSize); flock($file, LOCK_UN); fclose($file); echo $contents;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/OR0ZU
function name:  (null)
number of ops:  44
compiled vars:  !0 = $path, !1 = $file, !2 = $fileSize, !3 = $contents
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                   !0, '%2Ftmp%2Ffoo.txt'
    5     1        INIT_FCALL                                               'file_put_contents'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 '123456'
          4        DO_ICALL                                                 
    7     5        INIT_FCALL                                               'fopen'
          6        SEND_VAR                                                 !0
          7        SEND_VAL                                                 'r'
          8        DO_ICALL                                         $6      
          9        ASSIGN                                                   !1, $6
    8    10        INIT_FCALL                                               'flock'
         11        SEND_VAR                                                 !1
         12        SEND_VAL                                                 5
         13        DO_ICALL                                                 
   10    14        INIT_FCALL                                               'shell_exec'
         15        ROPE_INIT                                     3  ~10     'php+-r+%22var_dump%28file_put_contents%28%27'
         16        ROPE_ADD                                      1  ~10     ~10, !1
         17        ROPE_END                                      2  ~9      ~10, '%27%2C+%27baz%27%29%29%3B%22'
         18        SEND_VAL                                                 ~9
         19        DO_ICALL                                                 
   12    20        INIT_FCALL                                               'clearstatcache'
         21        SEND_VAL                                                 <false>
         22        SEND_VAR                                                 !0
         23        DO_ICALL                                                 
   13    24        INIT_FCALL                                               'filesize'
         25        SEND_VAR                                                 !0
         26        DO_ICALL                                         $14     
         27        ASSIGN                                                   !2, $14
   15    28        CONCAT                                           ~16     !2, '%0A'
         29        ECHO                                                     ~16
   17    30        INIT_FCALL                                               'fread'
         31        SEND_VAR                                                 !1
         32        SEND_VAR                                                 !2
         33        DO_ICALL                                         $17     
         34        ASSIGN                                                   !3, $17
   19    35        INIT_FCALL                                               'flock'
         36        SEND_VAR                                                 !1
         37        SEND_VAL                                                 3
         38        DO_ICALL                                                 
   20    39        INIT_FCALL                                               'fclose'
         40        SEND_VAR                                                 !1
         41        DO_ICALL                                                 
   22    42        ECHO                                                     !3
   23    43      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
151.44 ms | 1018 KiB | 21 Q