<?php
$thisf = $_SERVER['SCRIPT_NAME'];
`cp $thisf newname.php`;
?>
This little piece of code will copy the running script to newfile.php. If you're not satisfied yet, keep reading.
The scenario: You have a folder with lots of .zips, and you want to unzip each one in to a relevant folder according to it's name's first letter. For example if the .zip's name is somefile.zip we'll unzip it to dir s, if it's name is anotherfile.zip we'll unzip it to dir a. To keep the code short we assume that all needed directories already exist and that there are only .zips in the src dir.
Before we dive in to PHP lets go over the Linux command line unzip. To unzip file.zip residing in dir src to dir trg you use the following command:
$ unzip -d trg src/file.zip
Finally, ladies and gentlemen, the code:
<?php
//directory where the zips reside
$srcdir = "/home/user/zips/";
//the output master directory inside we have all the letters
$trgdir = "/home/user/out/";
$dirh = opendir($srcdir); //the dir handler of the zips
while(($zip = readdir($dirh)) !== FALSE) { //reading next file in dir
if($zip == "." || $zip == "..") continue; //checking that those are actual files
$firstL = $zip[0]; //getting the first letter of the file
`unzip -d $trgdir$firstL $srcdir$zip`; //running the CLI command
}
?>
Comments and questions are very welcome!
No comments:
Post a Comment