3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(decoct(umask(22))); $srcDir = '/tmp/files'; mkdir($srcDir); foreach([1, 2] as $i){ $file = tempnam($srcDir, 'test'); printf("File$i - %o\n", stat($file)['mode']); } $phar = new \PharData('/tmp/test.tar', null, null, \Phar::TAR); $phar->buildFromIterator(new \RecursiveDirectoryIterator($srcDir, \FilesystemIterator::SKIP_DOTS), $srcDir); $phar->addFile($file, 'added-with-add-file'); $phar->extractTo('/tmp/pharFiles'); foreach(new \RecursiveDirectoryIterator('/tmp/pharFiles', \FilesystemIterator::SKIP_DOTS) as $iFile) { printf('From ' . ($iFile->getFilename() === 'added-with-add-file' ? 'addFile':'Iterator'). " - %o\n", $iFile->getPerms()); }

preferences:
43.9 ms | 402 KiB | 5 Q