php - 替换文件中的单词,使用 PHP 中的另一个文件
问题描述
我有一个文件,上面有一段话(Assignment2inputfile.txt)。我可以很好地打开那个文件。我有另一个文件(停用词),其中包含一个单词列表,如果在 Assignment2inputfile 中找到这些单词,则需要将其替换为单词“stop”(我在代码中将其全部大写,以便在它起作用时立即看到)。我觉得我正处于我需要的边缘,但没有更换。这是一个练习,所以这就是为什么我的变量被非常普遍地命名或它们正在做什么(chng -> 更改 -> 更改原始文件;$new -> 更改的结果)
$x = file_get_contents('Assignment2inputfile.txt');
$chng = str_replace("stopwords",'STOP', $x);
$new = file_put_contents('Assignment2inputfile.txt', $chng);
echo $new;
解决方案
str_replace
可以将一个字符串数组作为其第一个参数,它会在目标字符串中查找并替换每个字符串。所以在这里
$chng = str_replace("stopwords", 'STOP', $x);
"stopwords"
需要是一个$stopwords
包含该文件中单词列表的数组。
获得该数组的最简单方法可能是使用file
,一个将文件读入数组的函数。
$stopwords = file('stopwords.txt', FILE_IGNORE_NEW_LINES);
$chng = str_replace($stopwords, 'STOP', $x);
FILE_IGNORE_NEW_LINES
是必需的,因为否则数组中的字符串将包含换行符,因此可能与其他文件中的任何内容都不匹配。
有点旁注,但file_put_contents
不返回新内容,它返回写入文件的字节数。因此,如果您想查看更改后的文本,只需echo $chng;
使用$new
.
推荐阅读
- angular - 在 Angular HttpClient 中返回 observable 之前等待
- javascript - 在 React 中以不同的方式调用方法
- php - YouTube commentThreads 将评论回复限制为 JSON 数据中的 5 个结果?
- android - Android TFLite 和 ML Kit:如何更快地调整位图大小和标准化?
- python - python中的api调用无法正确返回json
- java - JSF1091:找不到带有 url 参数的 mime 类型
- typescript - 如何在 Angular 8 中解密字符串
- reactjs - 如何将中继订阅与 GraphQl Lighthouse 订阅集成?
- python-3.x - Python:使用“readline()”函数读取行并附加到列表
- nested-loops - 在没有嵌套 for 循环的情况下在 Healpy 中创建环的有效方法?