PHP类 目录字串替换

lapmx 2003-10-03 01:10:14
有时想把一个目录中所有的文件中的一个字串替换成另一个字串,如果在WIN下还好说,在LINUX下,就要拉回来,不如在远端直接执行啦,所以写了这么个类,今天又让我看到啦,哈,发出来让大家指点一下



/*执行代码如下:
$replaceClass = new replaceStringFolder;
$replaceClass->oldString = "http://211.157.122.160:8282/";
$replaceClass->newString = "http://www.XXXX.net/";
$replaceClass->varFolder = "/opt/shtml/";
$replaceClass->doReplaceFolder();
*/

/*---------------------------------------------
| 功能: 替换一个目录下,一个字符串为另一个字符串
| 参数: oldString(被替换的字串),newString(替换为字串)
| 返回:
| 说明: 2003-5-14
| 创建: Lapmx@msn.com
| 修改: 2003-5-14
\----------------------------------------------*/
class replaceStringFolder {
var $oldString = ''; /*被替换的字串*/
var $newString = ''; /*替换为字串*/
var $varFolder = ''; /*打开的文件夹*/


/*---------------------------------------------
| 功能:
| 参数:
| 返回:
| 说明:
| 创建:Lapmx@msn.com
| 修改:
\----------------------------------------------*/
function doReplaceFolder() {
if(!$this->oldString||!$this->newString||!$this->varFolder) {
echo("参数不全,非法退出!");
exit;
}
$this->replaceFolder($this->varFolder);
}


/*---------------------------------------------
| 功能: 转换目录
| 参数:
| 返回:
| 说明: 2003-5-14
| 创建: Lapmx@msn.com
| 修改: 2003-5-14
\----------------------------------------------*/
function replaceFolder($folder) {
$d = dir($folder);
while($entry=$d->read()){
if($entry=='.'||$entry=='..')continue;
if(substr($entry,0,1)=='.')continue;
if (@is_dir($folder."/".$entry)){
$this->replaceFolder($folder."/".$entry);
}
else{
$pfile=$folder."/".$entry;
$this->replaceFile($pfile);
}
}
}


/*---------------------------------------------
| 功能: 替换文件
| 参数:
| 返回:
| 说明: 2003-5-14
| 创建:Lapmx@msn.com
| 修改: 2003-5-14
\----------------------------------------------*/
function replaceFile($pfile) {
if(ereg("\.shtml$",$pfile)||ereg("\.htm[1]{0,1}$",$pfile)||ereg("\.php$",$pfile)||ereg("\.txt$",$pfile)) {
$op = fopen($pfile,"r");
$contents = fread ($op, filesize ($pfile));
fclose ($op);
$op2= fopen($pfile,"w");
$contents = str_replace($this->oldString,$this->newString,$contents);
fputs($op2,$contents);
fclose($op2);
}
}

}
...全文
33 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghostsG 2003-10-06
  • 打赏
  • 举报
回复
这一整个东西完全不值得用类,完全是形似意不是。
lapmx 2003-10-06
  • 打赏
  • 举报
回复
3:建议先看看“面向MM”的写法
请给个URL,现在就去学习写法
gluck 2003-10-05
  • 打赏
  • 举报
回复
fuck,断线,再写一次。

1:不感兴趣
2:一两个函数就可以搞定
3:建议先看看“面向MM”的写法
4:最讨厌看见类中单独出现 echo print

lapmx 2003-10-05
  • 打赏
  • 举报
回复
大家不感兴趣啊
lapmx 2003-10-03
  • 打赏
  • 举报
回复
/*更正代码如下:
$replaceClass = new replaceStringFolder;
$replaceClass->oldString = "http://211.157.122.160:8282/";
$replaceClass->newString = "http://www.XXXX.net/";
$replaceClass->varFolder = "/opt/shtml";(这里最后没有“/”,切记)
$replaceClass->doReplaceFolder();
*/

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧