// 把这两个文件放到一个文件夹,然后放到要更改的文件根目录。

像这样:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>SearchMatchStr</title>
</head>
<script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
<body>
<div id="container"><form action="searchReplaceStr.php" method="post" @submit="onSubmit"><input type="text" name="target" v-model="target"><span style="color:red;">替换为</span><input type="text" name="strReplace" v-model="strReplace"><button>Submit!</button></form>
</div>
</body>
<script type="text/javascript">var app = new Vue({el: '#container',data: {target: null,strReplace: null,},methods: {onSubmit: function (e) {if (this.target && this.strReplace) {return true;}e.preventDefault();}},})
</script>
</html>

// php脚本文件

<?php
class searchReplaceStr{private $search = null;private $matchStr = null;public function __construct ($search, $matchStr) {if ($search == null || $matchStr == null) {return false;}$this->search = $search;$this->matchStr = $matchStr;}private function modifyFile ($filename) {$fileHandler = fopen($filename, 'r+');$modify = '';while (!feof($fileHandler)) {$source = fgets($fileHandler);$modify .= str_replace($this->search, $this->matchStr, $source);}if (!@unlink($filename)) {echo "delete file " . $filename . " success<br>";}$newFileHandler = fopen($filename, 'w');if (!feof($newFileHandler)) {fwrite($newFileHandler, $modify);}if (file_exists($filename)) {echo "create file " . $filename . " success<br>";}}public function sourceDir($dir) {$files = array();if ($dir != ".idea" && $dir != 'serchReplaceStr') {if(@$handle = opendir($dir)) {while(($file = readdir($handle)) !== false) {if($file != ".." && $file != "." && $file != "searchReplaceStr.php" && $file != 'index.html') {if(is_dir($dir."/".$file)) {$files[$file] = $this->sourceDir($dir."/".$file);} else {$this->modifyFile($dir . "/" .$file);}}}}}}
}
if (!is_null($_POST)) {$searchReplaceStr = new searchReplaceStr($_POST['target'], $_POST['strReplace']);print_r($searchReplaceStr->sourceDir('../'));
} else {echo "<script>alert('Please input value');location.href = './index.html';</script>";
}

转载于:https://www.cnblogs.com/phpcurd/p/9608049.html

无限递归替换文件内的某个字符串相关推荐

  1. 替换文件内指定字符串

    最近需要对文件内的某字符串(source)替换成另一字符串(target). 手动改其实也很简单方便,但是简单耐不住文件多.当需要二三十个sql文件需要替换里面的字符串(source)为字符串(tar ...

  2. python3查找文件中指定字符串_Python3在指定路径下递归定位文件中出现的字符串...

    [本文出自天外归云的博客园] 脚本功能:在指定的路径下递归搜索,找出指定字符串在文件中出现的位置(行信息). 用到的python特性: 代码如下: import os import sys __all ...

  3. sed命令对文件内的指定字符串进行替换

    目录 一.创建一个txt文件 二.替换每行第一个huawei为apple,第三个"/"后,不加参数就是只替换第一个 三.替换每行所有的xiaomi为iphone,第三个" ...

  4. Linux替换文件字符串和合并文件命令

    一.Linux 替换文件中指定的字符串命令 sed -i 's/原字符串s1/新字符串s2/g' defult.cfg 替换当前行所有s1为s2 sed -i 's/原字符串s1/新字符串s2/' d ...

  5. linux批量替换文件内容

    一.linux批量替换文件内容 : sed -i "s/旧内容/新内容/g" `grep 旧内容 -rl 文件夹路径` 例如将/var/www/test文件夹下的所有文件内容中的a ...

  6. 使用node读取文件内容并且替换文件中的内容

    背景: 因项目上安全编码要求,需要对angular编译后的文件中的特殊字符进行处理. 解决方案: 1.使用shell脚本(没试过,对shell不熟悉,理论上可行): 2.使用Python: 3.使用n ...

  7. php批量替换文件内容,写了个遍历目录、批量替换文件内容的类

    之前有需要,就写了这个类. 功能: 1 遍历目录下的所有文件(可指定后缀名) 2 批量替换文件内容(正则.字符串) 3 批量替换文件后缀名 4 批量替换文件编码 使用例: $dirExplorer = ...

  8. linux 批量替换所有文件中包含的字符串

    sed -i "s/原来字符串/新字符串/g" `grep 原来字符串 -rl .`格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 ...

  9. 【Java文件操作(三)】递归复制文件夹内所有文件

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

最新文章

  1. R语言问题解决:Error: Discrete value supplied to continuous scale
  2. java rect offset_Rect 的相关操作
  3. 为啥不装杀毒软件?全家桶太多...
  4. 知云文献翻译_工具推荐 | 知云学术翻译,让外文文献阅读不再难
  5. 工作中那些有用的工具
  6. 推荐系统入门实践:世纪佳缘会员推荐
  7. python实现excel的覆盖写入和追加
  8. C语言--《C专家编程》C语言申明的优先级规则
  9. Python绘制图像plt与正余弦正切函数以及散点图DIY基本操作整理Matplotlib 教程
  10. 【ENSP模拟器】ENSP——VLAN的配置
  11. 2022云管云网大会丨阿里云孙成浩:构建万物互联的智能云网络
  12. 基于三轴加速度传感器的老人摔倒检测
  13. UE4导入外部插件方法
  14. win11安装mysql8.0.29最新压缩包版
  15. 非标资产与标准资产_资产商店行动新闻– 2011年10月!
  16. java读取 png_JAVA如何操作PNG图片
  17. 一个逗比 程序员 web前端的理想!
  18. tp接入富友H5支付
  19. 推荐一款网络收音机,学英文很棒哟
  20. Nature:Hinton、LeCun、Bengio三巨头权威科普深度学习

热门文章

  1. DIY自己的GNU交叉工具链(i386-arm) 【ZT】
  2. glide首次加载图片时,出现图片变形,重复一下就正常
  3. yum安装 vs 源码编译安装
  4. python向数据库插入中文乱码问题
  5. linux和windows下的“回车符”和“换行符”
  6. python中shift_Pandas DataFrame.shift()用法示例
  7. mysql intt默认值_MySQL如何处理隐式默认值
  8. nodejs实践录:pm2实验测试记录
  9. 【SpringCloud】Spring cloud Alibaba Sentinel 热点规则
  10. 【Flink】Flink Dump of the process-tree for container Exit code is 143