Files
typecho/tools/replace.php
T
joyqi 55379c90df 初始化
修改了上一个版本的一些错误,第一次提交
2013-07-17 13:13:57 +08:00

106 lines
2.3 KiB
PHP

<?php
/**
* 用于格式化tab
*
* @author qining
* @category typecho
* @package default
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
* @license GNU General Public License 2.0
* @version $Id$
*/
/** 定义程序运行的根目录 */
define('ROOT_DIR', '../admin');
define('REPLACE', "/\\\$request-\>isSetParameter\('([^']+)'\)/is");
function replaceCallback($matches)
{
return 'isset($request->' . $matches[1] . ')';
}
//获取一个目录下的文件
function mgGetFile($inpath,$trim = false,$stamp = NULL)
{
$files = array();
if(!is_dir($inpath))
{
return $files;
}
$it = new DirectoryIterator($inpath);
$stamp = (NULL === $stamp) ? NULL : explode("|",$stamp);
foreach($it as $file)
{
if($file->isFile())
{
$file = $file->__toString();
$fileExt = (false === ($pos = strrpos($file,'.'))) ? NULL : substr($file,$pos + 1);
$fileName = (false === $pos) ? $file : substr($file,0,$pos);
if(NULL !== $stamp && in_array($fileExt,$stamp))
{
$files[] = $trim ? $file : $fileName;
}
else if(NULL === $stamp)
{
$files[] = $trim ? $file : $fileName;
}
}
}
return $files;
}
//获取一个目录下的目录
function mgGetDir($inpath)
{
$dirs = array();
if(!is_dir($inpath))
{
return $dirs;
}
$it = new DirectoryIterator($inpath);
foreach($it as $dir)
{
if($dir->isDir() && !$dir->isDot())
{
$dirs[] = $dir->__toString();
}
}
return $dirs;
}
function replace($dir = ROOT_DIR)
{
if($files = mgGetFile($dir, true, 'php'))
{
foreach($files as $file)
{
if($contents = file_get_contents($dir . '/' . $file))
{
$contents = preg_replace_callback(REPLACE, 'replaceCallback', $contents);
//echo $contents;
file_put_contents($dir . '/' . $file, $contents);
}
}
}
if($dirs = mgGetDir($dir))
{
foreach($dirs as $indir)
{
replace($dir . '/' . $indir);
}
}
}
replace();