首页 > 解决方案 > 替换文件中的单词,使用 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; 

标签: phpstr-replace

解决方案


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.


推荐阅读