Added missing exclusion flags
Put them into class
This commit is contained in:
		@@ -12,215 +12,248 @@ if ( !$argv[1] )
 | 
				
			|||||||
  -s <str ...>	Strings that will replace the matches
 | 
					  -s <str ...>	Strings that will replace the matches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Optional:
 | 
					  Optional:
 | 
				
			||||||
	*-e <patterns>	Exclude defined pattern
 | 
						-e <patterns>	Exclude defined pattern
 | 
				
			||||||
	*-l <File>	Output log file
 | 
						-l <File>	Output log file
 | 
				
			||||||
	-t		Test without modifying anything
 | 
						-t		Test without modifying anything
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*Not available yet.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
" ) ;
 | 
					" ) ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//------- End Usage -----------
 | 
					//------- End Usage -----------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ArgvParser
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						//parseOptions utilitiese by tgckpg
 | 
				
			||||||
 | 
						static function PARSE ( $argStream, $handler ) {
 | 
				
			||||||
 | 
							//Chop first useless argument -- argv[0]
 | 
				
			||||||
 | 
							array_shift ( $argStream ) ;
 | 
				
			||||||
 | 
							//Initiate ArrayObject for iterator
 | 
				
			||||||
 | 
							$arrayobject = new ArrayObject ( $argStream ) ;
 | 
				
			||||||
 | 
							//Initiate iterator for iteration
 | 
				
			||||||
 | 
							$iterator = $arrayobject->getIterator();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//If options is set first
 | 
				
			||||||
//Define globals
 | 
							if( $iterator->valid() && preg_match ( '/^-\w$/', $iterator->current() ) ) {
 | 
				
			||||||
$test = false;
 | 
								//iterate through whole argument stream
 | 
				
			||||||
$recursive = false;
 | 
								for (	; $iterator->valid(); $iterator->next() ) {
 | 
				
			||||||
$searchDirs = array();
 | 
									//Check if reached next option
 | 
				
			||||||
$patterns = array();
 | 
									if( preg_match ( '/^-\w$/', $opts = $iterator->current() ) ) {
 | 
				
			||||||
$replaceStrs = array();
 | 
										//Get current options
 | 
				
			||||||
 | 
										$currOpt = $opts;
 | 
				
			||||||
//------- Main Functions --------
 | 
										//echo "$currOpt\n";
 | 
				
			||||||
function getDirName ( $dir ) {
 | 
										//Test if next stream is an option
 | 
				
			||||||
	return is_dir ( $dir ) ? $dir : dirname ( $dir ) ;
 | 
										for ( $iterator->next(); $iterator->valid(); $iterator->next() ) {
 | 
				
			||||||
}
 | 
											if ( preg_match ( '/^-\w$/', $opts = $iterator->current() ) ) {
 | 
				
			||||||
 | 
												//echo "$currOpt $opts\n";
 | 
				
			||||||
function getFileList ( $dir ) {
 | 
												$handler($currOpt);
 | 
				
			||||||
	$fileList = array();
 | 
												$currOpt = $opts;
 | 
				
			||||||
	$iterator = new DirectoryIterator ( getDirName ( $dir )  ) ;
 | 
											} else break;
 | 
				
			||||||
	foreach ( $iterator as $fileinfo ) {
 | 
											//var_dump($iterator->valid());
 | 
				
			||||||
		if ( $fileinfo->isFile() ) {
 | 
										}
 | 
				
			||||||
				$fileList[] = $dir."/".$fileinfo->getFilename();
 | 
									}//End if
 | 
				
			||||||
		}
 | 
									//echo "$currOpt $opts\n";
 | 
				
			||||||
 | 
									$handler($currOpt, $opts);
 | 
				
			||||||
 | 
									//A temporary fix for infinite loop
 | 
				
			||||||
 | 
									if(!$iterator->valid())
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
								}// End for
 | 
				
			||||||
 | 
							//If option is not set first.
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								//Try other approach.
 | 
				
			||||||
 | 
							}// End if
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return $fileList;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getDirList ( $dir ) {
 | 
					
 | 
				
			||||||
    $dirList = array();
 | 
					class RegRename
 | 
				
			||||||
    $iterator = new DirectoryIterator ( getDirName ( $dir )  ) ;
 | 
					{
 | 
				
			||||||
	foreach ( $iterator as $fileinfo ) {
 | 
					
 | 
				
			||||||
			if ( $fileinfo->isDir() && !$fileinfo->isDot()) {
 | 
						//Define globals
 | 
				
			||||||
					$dirList[] = $fileinfo->getFilename();
 | 
						private $test = false;
 | 
				
			||||||
 | 
						private $recursive = false;
 | 
				
			||||||
 | 
						private $searchDirs = array();
 | 
				
			||||||
 | 
						private $patterns = array();
 | 
				
			||||||
 | 
						private $replaceStrs = array();
 | 
				
			||||||
 | 
						private $excludes = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private $logfile = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function begin()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$this->validateOptions();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//------- Begin Operations -------
 | 
				
			||||||
 | 
							foreach ( $this->searchDirs as $dir ) {
 | 
				
			||||||
 | 
								$this->elog("Directory: $dir\nBuilding file list ...");
 | 
				
			||||||
 | 
								if ( $this->recursive ) {
 | 
				
			||||||
 | 
									$fileList = $this->getWholeFileList($dir);
 | 
				
			||||||
 | 
								}	else {
 | 
				
			||||||
 | 
									$fileList = $this->getFileList($dir);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
    }
 | 
								$this->elog("Searching ...");
 | 
				
			||||||
 | 
								foreach ( $fileList as $file ) {
 | 
				
			||||||
	return $dirList;
 | 
									//
 | 
				
			||||||
}
 | 
									// Get the file name
 | 
				
			||||||
 | 
									// RegExplained:
 | 
				
			||||||
function getWholeDirList ( $dir ) {
 | 
									// Example: /foo/bar/foobar.bar
 | 
				
			||||||
	$wholeDirList = array();
 | 
									//   $matches[0][0] is the whole string "/foo/bar/foobar.bar"
 | 
				
			||||||
	//getWholeDirList will stop untill getDirList return an empty array.
 | 
									//
 | 
				
			||||||
	foreach ( getDirList ( $dir ) as $file ) {
 | 
									//   ^(.+?)
 | 
				
			||||||
			//Store found path
 | 
									//   This gets the file path "/foo/bar/" for $matches[1][0]
 | 
				
			||||||
			$wholeDirList[] = "$dir/$file";
 | 
									//
 | 
				
			||||||
			//Method getWholeDirList will self-iterate if sub-directories exist.
 | 
									//   ([^\/\\\\]+)$
 | 
				
			||||||
			$wholeDirList = array_merge ( $wholeDirList, getWholeDirList ( "$dir/$file" )  ) ;
 | 
									//   This gets the file name "foobar.bar" for $matches[2][0]
 | 
				
			||||||
	}
 | 
									//
 | 
				
			||||||
	return $wholeDirList;
 | 
									preg_match_all('/^(.+?)([^\/\\\\]+)$/', $file, $matches );
 | 
				
			||||||
}
 | 
									$newName = $matches[2][0];
 | 
				
			||||||
 | 
									foreach ( $this->patterns as $key => $pattern ) {
 | 
				
			||||||
function getWholeFileList ( $dir ) {
 | 
										//Rename over the patterns
 | 
				
			||||||
	//Get the first level list.
 | 
										$newName = preg_replace( $pattern, $this->replaceStrs[$key], $newName );
 | 
				
			||||||
	$wholeFileList = getFileList( $dir );
 | 
					 | 
				
			||||||
	//getWholeDirList and search its files.
 | 
					 | 
				
			||||||
	foreach ( getWholeDirList ( $dir ) as $dir ) {
 | 
					 | 
				
			||||||
		$wholeFileList = array_merge ( $wholeFileList, getFileList ( $dir )  ) ;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return $wholeFileList;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function validateOptions (  ) {
 | 
					 | 
				
			||||||
	global $searchDirs, $patterns, $replaceStrs;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	try {
 | 
					 | 
				
			||||||
		if(count($searchDirs) == 0)
 | 
					 | 
				
			||||||
		throw new Exception("Search directory is missing");
 | 
					 | 
				
			||||||
		else if(count($patterns) == 0)
 | 
					 | 
				
			||||||
		throw new Exception("Search pattern is missing");
 | 
					 | 
				
			||||||
		else if(count($replaceStrs) == 0)
 | 
					 | 
				
			||||||
		throw new Exception("Replacement string is missing");
 | 
					 | 
				
			||||||
		else if(count($replaceStrs) != count($patterns))
 | 
					 | 
				
			||||||
		throw new Exception("Replacement string and pattern count not match");
 | 
					 | 
				
			||||||
	} catch(Exception $e) {
 | 
					 | 
				
			||||||
		var_dump( $GLOBALS );
 | 
					 | 
				
			||||||
		die("Error: $e.\n");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function setOptions( $item, $value = NULL ) {
 | 
					 | 
				
			||||||
	global $test, $recursive, $searchDirs, $patterns, $replaceStrs;
 | 
					 | 
				
			||||||
	switch($item) {
 | 
					 | 
				
			||||||
		case "-d":
 | 
					 | 
				
			||||||
			if($value)
 | 
					 | 
				
			||||||
			$searchDirs[] = $value;
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
		case "-p":
 | 
					 | 
				
			||||||
			if($value)
 | 
					 | 
				
			||||||
			$patterns[] = $value;
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
		case "-r":
 | 
					 | 
				
			||||||
			$recursive = true;
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
		case "-s":
 | 
					 | 
				
			||||||
			if($value)
 | 
					 | 
				
			||||||
			$replaceStrs[] = $value;
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
		case "-t":
 | 
					 | 
				
			||||||
			$test = true;
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
		default:
 | 
					 | 
				
			||||||
			//Do nothing
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//parseOptions utilitiese by tgckpg
 | 
					 | 
				
			||||||
function parseOptions ( $argStream, $handler ) {
 | 
					 | 
				
			||||||
	//Chop first useless argument -- argv[0]
 | 
					 | 
				
			||||||
	array_shift ( $argStream ) ;
 | 
					 | 
				
			||||||
	//Initiate ArrayObject for iterator
 | 
					 | 
				
			||||||
	$arrayobject = new ArrayObject ( $argStream ) ;
 | 
					 | 
				
			||||||
	//Initiate iterator for iteration
 | 
					 | 
				
			||||||
	$iterator = $arrayobject->getIterator();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	//If options is set first
 | 
					 | 
				
			||||||
	if( $iterator->valid() && preg_match ( '/^-\w$/', $iterator->current() ) ) {
 | 
					 | 
				
			||||||
		//iterate through whole argument stream
 | 
					 | 
				
			||||||
		for (	; $iterator->valid(); $iterator->next() ) {
 | 
					 | 
				
			||||||
			//Check if reached next option
 | 
					 | 
				
			||||||
			if( preg_match ( '/^-\w$/', $opts = $iterator->current() ) ) {
 | 
					 | 
				
			||||||
				//Get current options
 | 
					 | 
				
			||||||
				$currOpt = $opts;
 | 
					 | 
				
			||||||
				//echo "$currOpt\n";
 | 
					 | 
				
			||||||
				//Test if next stream is an option
 | 
					 | 
				
			||||||
				for ( $iterator->next(); $iterator->valid(); $iterator->next() ) {
 | 
					 | 
				
			||||||
					if ( preg_match ( '/^-\w$/', $opts = $iterator->current() ) ) {
 | 
					 | 
				
			||||||
						//echo "$currOpt $opts\n";
 | 
					 | 
				
			||||||
						$handler($currOpt);
 | 
					 | 
				
			||||||
						$currOpt = $opts;
 | 
					 | 
				
			||||||
					} else break;
 | 
					 | 
				
			||||||
					//var_dump($iterator->valid());
 | 
					 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}//End if
 | 
					
 | 
				
			||||||
			//echo "$currOpt $opts\n";
 | 
									if( $matches[2][0] != $newName ) {
 | 
				
			||||||
			$handler($currOpt, $opts);
 | 
					
 | 
				
			||||||
			//A temporary fix for infinite loop
 | 
										// Excluede any matches
 | 
				
			||||||
			if(!$iterator->valid())
 | 
										foreach ( $this->excludes as $key => $pattern ) {
 | 
				
			||||||
 | 
											if(preg_match_all($pattern, $file)) {
 | 
				
			||||||
 | 
												$this->elog("S	File \"{$matches[2][0]}\" excluded on $pattern");
 | 
				
			||||||
 | 
												continue 2;
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if( $this->test ) {
 | 
				
			||||||
 | 
											$this->elog("R	File \"{$matches[2][0]}\" will be renamed to \"$newName\"");
 | 
				
			||||||
 | 
										} else {
 | 
				
			||||||
 | 
											rename ( $file, "{$matches[1][0]}$newName" );
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										if ( $this->logfile ) {
 | 
				
			||||||
 | 
											file_put_contents($this->logfile, $this->log);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}/* else {
 | 
				
			||||||
 | 
										echo "File \"{$matches[0][0]}\" will not be renamed\n";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									//*/
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								$this->elog();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if ( $this->test ) $this->elog("*** Test enabled ***\n");
 | 
				
			||||||
 | 
							//------- End Operations -------*/
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function setOption( $item, $value = NULL ) {
 | 
				
			||||||
 | 
							switch($item) {
 | 
				
			||||||
 | 
								case "-d":
 | 
				
			||||||
 | 
									if($value)
 | 
				
			||||||
 | 
									$this->searchDirs[] = $value;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
		}// End for
 | 
								case "-p":
 | 
				
			||||||
	//If option is not set first.
 | 
									if($value)
 | 
				
			||||||
	} else {
 | 
									$this->patterns[] = $value;
 | 
				
			||||||
		//Try other approach.
 | 
									break;
 | 
				
			||||||
	}// End if
 | 
								case "-r":
 | 
				
			||||||
 | 
									$this->recursive = true;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								case "-s":
 | 
				
			||||||
 | 
									if($value)
 | 
				
			||||||
 | 
									$this->replaceStrs[] = $value;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								case "-t":
 | 
				
			||||||
 | 
									$this->test = true;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								case "-e":
 | 
				
			||||||
 | 
									$this->excludes[] = $value;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								case "-l":
 | 
				
			||||||
 | 
									$this->logfile = $value;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								default:
 | 
				
			||||||
 | 
									//Do nothing
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//------- Main Functions --------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						function elog( $line = "" ) {
 | 
				
			||||||
 | 
							$this->log .= $line;
 | 
				
			||||||
 | 
							$this->log .= "\n";
 | 
				
			||||||
 | 
							echo "$line\n";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private function getDirName ( $dir ) {
 | 
				
			||||||
 | 
							return is_dir ( $dir ) ? $dir : dirname ( $dir ) ;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private function getFileList ( $dir ) {
 | 
				
			||||||
 | 
							$fileList = array();
 | 
				
			||||||
 | 
							$iterator = new DirectoryIterator ( $this->getDirName ( $dir )  ) ;
 | 
				
			||||||
 | 
							foreach ( $iterator as $fileinfo ) {
 | 
				
			||||||
 | 
								if ( $fileinfo->isFile() ) {
 | 
				
			||||||
 | 
										$fileList[] = $dir."/".$fileinfo->getFilename();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return $fileList;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private function getDirList ( $dir ) {
 | 
				
			||||||
 | 
							$dirList = array();
 | 
				
			||||||
 | 
							$iterator = new DirectoryIterator ( $this->getDirName ( $dir )  ) ;
 | 
				
			||||||
 | 
							foreach ( $iterator as $fileinfo ) {
 | 
				
			||||||
 | 
									if ( $fileinfo->isDir() && !$fileinfo->isDot()) {
 | 
				
			||||||
 | 
											$dirList[] = $fileinfo->getFilename();
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return $dirList;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private function getWholeDirList ( $dir ) {
 | 
				
			||||||
 | 
							$wholeDirList = array();
 | 
				
			||||||
 | 
							//getWholeDirList will stop untill getDirList return an empty array.
 | 
				
			||||||
 | 
							foreach ( $this->getDirList ( $dir ) as $file ) {
 | 
				
			||||||
 | 
									//Store found path
 | 
				
			||||||
 | 
									$wholeDirList[] = "$dir/$file";
 | 
				
			||||||
 | 
									//Method getWholeDirList will self-iterate if sub-directories exist.
 | 
				
			||||||
 | 
									$wholeDirList = array_merge ( $wholeDirList, $this->getWholeDirList ( "$dir/$file" )  ) ;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return $wholeDirList;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private function getWholeFileList ( $dir ) {
 | 
				
			||||||
 | 
							//Get the first level list.
 | 
				
			||||||
 | 
							$wholeFileList = $this->getFileList( $dir );
 | 
				
			||||||
 | 
							//getWholeDirList and search its files.
 | 
				
			||||||
 | 
							foreach ( $this->getWholeDirList ( $dir ) as $dir ) {
 | 
				
			||||||
 | 
								$wholeFileList = array_merge ( $wholeFileList, $this->getFileList ( $dir )  ) ;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return $wholeFileList;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private function validateOptions (  ) {
 | 
				
			||||||
 | 
							try {
 | 
				
			||||||
 | 
								if(count($this->searchDirs) == 0)
 | 
				
			||||||
 | 
								throw new Exception("Search directory is missing");
 | 
				
			||||||
 | 
								else if(count($this->patterns) == 0)
 | 
				
			||||||
 | 
								throw new Exception("Search pattern is missing");
 | 
				
			||||||
 | 
								else if(count($this->replaceStrs) == 0)
 | 
				
			||||||
 | 
								throw new Exception("Replacement string is missing");
 | 
				
			||||||
 | 
								else if(count($this->replaceStrs) != count($this->patterns))
 | 
				
			||||||
 | 
								throw new Exception("Replacement string and pattern count not match");
 | 
				
			||||||
 | 
							} catch(Exception $e) {
 | 
				
			||||||
 | 
								var_dump( $GLOBALS );
 | 
				
			||||||
 | 
								die("Error: $e.\n");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//------- End Main Functions --------
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//------- End Main Functions --------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
parseOptions ( $argv, 'setOptions' ) ;
 | 
					 | 
				
			||||||
validateOptions();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//------- Begin Operations -------
 | 
					 | 
				
			||||||
foreach ( $searchDirs as $dir ) {
 | 
					 | 
				
			||||||
	echo "Directory: $dir\nBuilding file list ...\n";
 | 
					 | 
				
			||||||
	if ( $recursive ) {
 | 
					 | 
				
			||||||
		$fileList = getWholeFileList($dir);
 | 
					 | 
				
			||||||
	}	else {
 | 
					 | 
				
			||||||
		$fileList = getFileList($dir);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	echo "Searching ...\n";
 | 
					 | 
				
			||||||
	foreach ( $fileList as $file ) {
 | 
					 | 
				
			||||||
		//
 | 
					 | 
				
			||||||
		// Get the file name
 | 
					 | 
				
			||||||
		// RegExplained:
 | 
					 | 
				
			||||||
		// Example: /foo/bar/foobar.bar
 | 
					 | 
				
			||||||
		//   $matches[0][0] is the whole string "/foo/bar/foobar.bar"
 | 
					 | 
				
			||||||
		//
 | 
					 | 
				
			||||||
		//   ^(.+?)
 | 
					 | 
				
			||||||
		//   This gets the file path "/foo/bar/" for $matches[1][0]
 | 
					 | 
				
			||||||
		//
 | 
					 | 
				
			||||||
		//   ([^\/\\\\]+)$
 | 
					 | 
				
			||||||
		//   This gets the file name "foobar.bar" for $matches[2][0]
 | 
					 | 
				
			||||||
		//
 | 
					 | 
				
			||||||
		preg_match_all('/^(.+?)([^\/\\\\]+)$/', $file, $matches );
 | 
					 | 
				
			||||||
		$newName = $matches[2][0];
 | 
					 | 
				
			||||||
		foreach ( $patterns as $key => $pattern ) {
 | 
					 | 
				
			||||||
			//Rename over the patterns
 | 
					 | 
				
			||||||
			$newName = preg_replace( $pattern, $replaceStrs[$key], $newName );
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if( $matches[2][0] != $newName ) {
 | 
					 | 
				
			||||||
			if( $test ) {
 | 
					 | 
				
			||||||
				echo "File \"{$matches[2][0]}\" will be renamed to \"$newName\"\n";
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				rename ( $file, "{$matches[1][0]}$newName" );
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if ( $logfile ) {
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}/* else {
 | 
					 | 
				
			||||||
			echo "File \"{$matches[0][0]}\" will not be renamed\n";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		//*/
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	echo "\n";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
if ( $test ) echo "*** Test enabled ***\n\n";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//------- End Operations -------*/
 | 
					$rrgr = new RegRename();
 | 
				
			||||||
 | 
					ArgvParser::PARSE ( $argv, array($rrgr, 'setOption') ) ;
 | 
				
			||||||
 | 
					$rrgr->begin();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user