]> granicus.if.org Git - php/commitdiff
- Add new example
authorMarcus Boerger <helly@php.net>
Tue, 13 Feb 2007 00:18:36 +0000 (00:18 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 13 Feb 2007 00:18:36 +0000 (00:18 +0000)
ext/spl/examples/phar_from_dir.php [new file with mode: 0755]

diff --git a/ext/spl/examples/phar_from_dir.php b/ext/spl/examples/phar_from_dir.php
new file mode 100755 (executable)
index 0000000..2972748
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+
+/** @file   phar_from_dir.php
+ * @brief   Create phar archive from directory
+ * @ingroup examples
+ * @author  Marcus Boerger
+ * @date    2003 - 2007
+ * @version 1.0
+ *
+ * Usage: php phar_create_from_dir.php \<archive\> \<directory\> [\<regex\>]
+ *
+ * Create phar archive \<archive\> using entries from \<directory\> that 
+ * optionally match \<regex\>.
+ */
+
+if ($argc < 3)
+{
+       echo <<<EOF
+php phar_from_dir.php archive directory [regex]
+
+Packs files in a given directory into a phar archive.
+
+archive    name of the archive to create
+directory  input directory to pack
+regex      optional expression to match files in directory
+
+EOF;
+       exit(1);
+}
+
+$phar = new Phar($argv[1], 0, 'newphar');
+
+$dir = new RecursiveDirectoryIterator($argv[2]);
+$dir = new RecursiveIteratorIterator($dir);
+if ($argc > 3)
+{
+       $dir = new RegexIterator($dir, '/'.$argv[3].'/');
+}
+
+
+$cwd .= DIRECTORY_SEPARATOR;
+
+$phar->begin();
+
+foreach($dir as $file)
+{
+       echo "$file\n";
+       copy($file, "phar://newphar/$file");
+}
+
+$phar->commit();
+
+?>
\ No newline at end of file