summaryrefslogtreecommitdiff
path: root/ext/spl/examples/phar_from_dir.php
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/examples/phar_from_dir.php')
-rwxr-xr-xext/spl/examples/phar_from_dir.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/ext/spl/examples/phar_from_dir.php b/ext/spl/examples/phar_from_dir.php
new file mode 100755
index 0000000..2ee15ca
--- /dev/null
+++ b/ext/spl/examples/phar_from_dir.php
@@ -0,0 +1,50 @@
+<?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].'/');
+}
+
+$phar->begin();
+
+foreach($dir as $file)
+{
+ echo "$file\n";
+ copy($file, "phar://newphar/$file");
+}
+
+$phar->commit();
+
+?> \ No newline at end of file