<?php |
$info = "PHP在线网页文本替换" ; |
error_reporting (7); |
ob_start(); |
$mtime = explode ( ' ' , microtime()); |
$starttime = $mtime [1] + $mtime [0]; |
/*===================== 程序配置 =====================*/ |
// 是否需要密码验证,1为需要验证,其他数字为直接进入.下面选项则无效 |
$admin [ 'check' ] = "1" ; |
// 如果需要密码验证,请修改登陆密码 |
$admin [ 'pass' ] = "admin" ; |
/*===================== 配置结束 =====================*/ |
// 允许程序在 register_globals = off 的环境下工作 |
$onoff = (function_exists( 'ini_get' )) ? ini_get ( 'register_globals' ) : get_cfg_var( 'register_globals' ); |
if ( $onoff != 1) { |
@extract( $_POST , EXTR_SKIP); |
@extract( $_GET , EXTR_SKIP); |
} |
$self = $_SERVER [ 'PHP_SELF' ]; |
$dis_func = get_cfg_var( "disable_functions" ); |
/*===================== 身份验证 =====================*/ |
if ( $admin [ 'check' ] == "1" ) { |
if ( $_GET [ 'action' ] == "logout" ) { |
setcookie ( "adminpass" , "" ); |
echo "<meta http-equiv=\"refresh\" content=\"3;URL=" . $self . "\">" ; |
echo "<span style=\"font-size: 12px; font-family: Verdana\">注销成功......<p><a href=\"" . $self . "\">三秒后自动退出或单击这里退出程序界面 >>></a></span>" ; |
exit ; |
} |
if ( $_POST [ 'do' ] == 'login' ) { |
$thepass =trim( $_POST [ 'adminpass' ]); |
if ( $admin [ 'pass' ] == $thepass ) { |
setcookie ( "adminpass" , $thepass ,time()+(1*24*3600)); |
echo "<meta http-equiv=\"refresh\" content=\"3;URL=" . $self . "\">" ; |
echo "<span style=\"font-size: 12px; font-family: Verdana\">登陆成功......<p><a href=\"" . $self . "\">三秒后自动跳转或单击这里进入程序界面 >>></a></span>" ; |
exit ; |
} |
} |
if (isset( $_COOKIE [ 'adminpass' ])) { |
if ( $_COOKIE [ 'adminpass' ] != $admin [ 'pass' ]) { |
loginpage(); |
} |
} else { |
loginpage(); |
} |
} |
/*===================== 验证结束 =====================*/ |
?> |
<html> |
<head> |
<title><?php echo $info ;?></title> |
<style type= "text/css" > |
body { |
font-size: 12px; |
font-family: "MS Sans Serif" , "Helvetica" , "sans-serif" ; |
text-align: center; |
margin: 0 0 0 0; |
} |
textarea { |
font: 12px "Verdana" , "Tahoma" , "sans-serif" ; |
padding: 4px; |
} |
input { |
font-family: "Verdana" ; |
font-size: "11px" ; |
BACKGROUND-COLOR: "#FFFFFF" ; |
height: "18px" ; |
border: "1px solid #666666" ; |
} |
form { |
margin: 0 0 0 0; |
} |
div { |
padding: 2 5 2 5; |
margin: 2 2 2 2; |
} |
a:link,a:visited,a:active { |
color: "#000000" ; |
text-decoration: underline; |
} |
a:hover { |
color: "#465584" ; |
text-decoration: none; |
} |
.main { |
width: 800; |
height: ; |
text-align: left; |
} |
.header { |
width: 100%; |
} |
.title { |
font-weight: bold; |
float: left; |
} |
.menu { |
float: right |
} |
.msg { |
border-top: 1px solid #000000; |
} |
.about { |
border-top: 1px solid #000000; |
width: 100%; |
} |
.step { |
border-top: 1px solid #000000; |
width: 100%; |
} |
.text { |
|
} |
.form { |
border-top: 1px solid #000000; |
} |
.item { |
width: 100%; |
text-align: center; |
} |
.button { |
width: 100%; |
text-align: center; |
} |
.footer { |
margin-top: 20; |
width: 100%; |
border-top: 1px solid #000000; |
} |
.copyright { |
float: left; |
} |
.run { |
float: right; |
} |
</style> |
</head> |
<body> |
<?php |
/* |
//调试用 |
echo "<pre>\n"; |
echo "_POST\n"; |
print_r($_POST); |
echo "_GET\n"; |
print_r($_GET); |
echo "</pre>\n"; |
*/ |
?> |
<div class = "main" > |
<div class = "header" > |
<div class = "title" ><?php echo $info ;?></div> |
<div class = "menu" ><?php |
if ( $admin [ 'check' ] == "1" ){?> <a href= "?action=logout" >注销</a><?php } |
?></div> |
</div> |
<div class = "msg" ><?php |
if ( $_GET [ 'action' ]== "replace" ){ |
if (! $_POST [ 'submit' ]){ |
$_POST [ 'dir' ]== "" ? $dir = "." : $dir = $_POST [ 'dir' ]; //设定目录 |
$count = $_POST [ 'count' ]; |
//调用函数 |
listfiles( $dir ); |
echo "<font color=\"red\">替换完毕!</font><br>\n" ; |
} |
} |
else if ( $_GET [ 'action' ]== "post" ){ |
$count = $_POST [ 'count' ]; |
info(); |
} |
else { |
if ( empty ( $count )) $count =1; else $count = $_GET [ 'count' ]; |
info(); |
} |
if ( $count <1) $count =1; |
?></div> |
<div class = "about" >Coze by <a href= "http://labs.net.cn" >Labs.Net.cn</a><br /> |
Last update on Dec 30 2006<br /> |
</div> |
<div class = "step" >使用方法: |
<ol> |
<li>在替换之前请将要替换的文件属性全部修改为 0777 (WINDOWS服务器可以省略此步骤)</li> |
<li>修改替换个数</li> |
<li>设定将要替换的目录</li> |
<li>设定替换文件的后缀</li> |
<li>...</li> |
</ol> |
<font color= "red" >注意:慎用本程序,一旦出错将可能无法恢复,使用完毕请立即删除,造成任何后果自负.</font></div> |
<div class = "form" > |
<div class = "text" > |
<form id= "form1" name= "form1" method= "post" action= "?action=post" ><label>替换个数: |
<input name= "count" type= "text" maxlength= "3" /> </label> <label> <input |
type= "submit" name= "Submit" value= " 修改 " /> </label></form> |
</div> |
<form name= "form" method= "post" action= "?action=replace" > |
<div class = "text" ><input name= "count" type= "hidden" |
value= "<?php echo $count; ?>" > <label>目标目录: <input type= "text" |
name= "dir" value= "" /> 将要替换的目录,例:dir/dirname</label></div> |
<div class = "text" ><label>文件类型: <input type= "text" name= "type" value= "" /> |
请填写文件后缀,多种后缀请用 "|" 分隔,例:txt|html|htm,留空为替换全部类型</label></div> |
<div class = "text" ><?php |
for ( $i =1; $i <= $count ; $i ++){ |
print( "<div class=\"item\"><textarea name=\"a[{$i}]\" cols=\"50\" rows=\"10\"></textarea> <textarea name=\"b[{$i}]\" cols=\"50\" rows=\"10\"></textarea></div>" ); |
} |
?></div> |
<div class = "button" ><input type= "submit" name= "Submit" value= " 修改 " /> <input |
type= "reset" name= "Submit2" value= " 重置 " /></div> |
</form> |
</div> |
<div class = "footer" > |
<div class = "copyright" >Copyright (C) 2006 m4ker.net All Rights Reserved.</div> |
<div class = "run" ><?php |
debuginfo(); |
ob_end_flush(); |
?></div> |
</div> |
</div> |
</body> |
</html> |
<?php |
/*===================== 定义函数========================*/ |
function listfiles( $dir = "." ){ //遍厉目录并替换 |
$hAndle =opendir( $dir ); //打开目录 |
while (fAlse!=( $file =reAddir( $hAndle ))){ //阅读目录 |
if ( $file != '.' && $file != '..' ){ //列出所有文件并去掉'.'和'.. |
if ( is_dir ( "$dir/$file" )){ //列出文件和目录 |
echo "<font color=\"yellow\">$dir/$file</font><br />" ; //输出目录名[黄色] |
listfiles( "$dir/$file" ); //递归调用 |
} |
else if ( "$dir/$file" !=selfname()){ //判断自身 |
echo "$dir/$file" ; //输出文件名 |
//读取文件内容 |
if (checktype(selftype( "$dir/$file" ),types( $_POST [ 'type' ])) and $_POST [ 'type' ]!= "" ){ |
if ( filesize ( "$dir/$file" )>0){ |
if ( is_writable ( "$dir/$file" )){ |
$fp = fopen ( "$dir/$file" , "r" ); |
$con = addslashes ( freAd ( $fp , filesize ( "$dir/$file" ))); |
//==========================替换内容 |
$con =replace( $_POST [ 'a' ], $_POST [ 'b' ], $con ); |
fclose( $fp ); //关闭文件连接 |
$fd = fopen ( "$dir/$file" , "w" ); //打开文件 |
$A = fputs ( $fd , stripslashes ( $con )); //写入替换后的内容 |
fclose( $fd ); //关闭文件连接 |
echo "<br />" ; |
} |
else { |
echo "<font color=\"red\"> 不可写</font><br />" ; |
} |
} |
} |
else if ( $_POST [ 'type' ]== "" ){ |
if ( filesize ( "$dir/$file" )>0){ |
if ( is_writable ( "$dir/$file" )){ |
$fp = fopen ( "$dir/$file" , "r" ); |
$con = addslashes ( freAd ( $fp , filesize ( "$dir/$file" ))); |
//==========================替换内容 |
$con =replace( $_POST [ 'a' ], $_POST [ 'b' ], $con ); |
fclose( $fp ); //关闭文件连接 |
$fd = fopen ( "$dir/$file" , "w" ); //打开文件 |
$A = fputs ( $fd , stripslashes ( $con )); //写入替换后的内容 |
fclose( $fd ); //关闭文件连接} |
echo "<br />" ; |
} |
else { |
echo "<font color=\"red\"> 不可写</font><br />" ; |
} |
} |
} |
else { |
echo "<font color=\"red\"> 类型不匹配</font><br />" ; |
} |
} |
} |
} |
} |
function selfname(){ //返回本文件名 |
$a = explode ( "/" , $_SERVER [ 'PHP_SELF' ]); |
return "./" . $a [ count ( $a )-1]; |
} |
function selftype( $filepath ){ //返回文件后缀 |
$a = explode ( "." , $filepath ); |
return $a [ count ( $a )-1]; |
} |
function checktype( $selftype , $type ){ |
for ( $i =0; $i < count ( $type ); $i ++){ |
$a =0; |
if ( $type [ $i ]== $selftype ){ |
$a =1; |
break ; |
} |
} |
return $a ; |
} |
function types( $types ){ |
$type = explode ( "|" , $types ); |
return $type ; |
} |
function replace( $a , $b , $c ){ |
for ( $i =1; $i <= count ( $a ); $i ++){ |
$c = str_replAce ( $a [ $i ], $b [ $i ], $c ); |
} |
return $c ; |
} //end replace() |
function info(){ |
?> |
<div align= "center" ><a href= "http://labs.net.cn" target= "_blank" >Labs Of |
China</a>独立开发,可在 <a href= "http://labs.net.cn" target= "_blank" >中国网络实验室</a> |
下载最新版本以及提供技术支持</div> |
<?php |
} |
// 登陆入口 |
function loginpage() { |
?> |
<style type= "text/css" > |
input { |
font-family: "Verdana" ; |
font-size: "11px" ; |
BACKGROUND-COLOR: "#FFFFFF" ; |
height: "18px" ; |
border: "1px solid #666666" ; |
} |
</style> |
<form method= "POST" action= "" ><font color= "red" style= "font-size: 12px;" >默认密码:labs.net.cn,请尽快修改您的密码.</font><br /> |
<span style= "font-size: 11px; font-family: Verdana" >Password: </span><input |
name= "adminpass" type= "password" size= "20" > <input type= "hidden" |
name= "do" value= "login" > <input type= "submit" value= "Login" ></form> |
<?php |
exit ; |
} //end loginpage() |
// 页面调试信息 |
function debuginfo() { |
global $starttime ; |
$mtime = explode ( ' ' , microtime()); |
$totaltime = number_format(( $mtime [1] + $mtime [0] - $starttime ), 6); |
echo "Processed in $totaltime second(s)" ; |
} |
?> |