我无法理解这一点。我在这里和其他地方读过很多其他帖子,但我只是不明白。我想也许是因为我很难想象其他人的例子。有人可以给我一些关于我在这里做错了什么的见解。
1. $data = file_get_contents("rawtext.txt");
2.
3. $kList[0] = "uszips.txt";
4. $kList[1] = "cities.txt";
5. $kList[2] = "states.txt";
6.
7. foreach($kList as $replacelist)
8. {
9.
10.
11. $fp = @fopen($kList, 'r');
12. if ($fp) {
13. $array = explode("\n", fread($fp, filesize($kList)));
14. }
15.
16. $replacelist = str_replace($array,"", $data); }
17.
18. // remove stuff less than 2 characters,
19. $data = preg_replace("!\\b\\w{1,2}\\b!", "", $data);
20. // remove blank lines.
21. $data = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $data);
22.
23. //save it back:
24. file_put_contents("stripped.txt",$data);
25.
@DarkXphenomenon我收到这些通知
感谢@ tip。我删除了它,现在我又得到了它。
答案 0 :(得分:0)
嗯,这只能意味着文件本身没有打开阅读。 如果输入了以下内容,则会设置$ array。
if ($fp) {
$array = explode("\n", fread($fp, filesize($kList)));
}
因此,您应该检查文件是否确实存在。在测试时,您应该删除错误抑制@
,因为它将使调试更快。
编辑:在for-each
循环中,您应该在内部使用$ replacelist变量,而不是整个数组。它应该是
foreach($kList as $replacelist)
{
$fp = @fopen($replacelist, 'r');
...
}