我有一个简单的脚本,它从表单中获取一个单词并评估它是否存在于文件(.txt)中.txt文件在每一行上都有一个单词或短语.文件中没有\ t或\ r \n.
但是,当我提交表单并POST文件中的第一个单词(例如"the")时,下面的脚本返回false,它应该返回true.
我知道这一点,因为当我打印出数组$文件时,我进入屏幕:
Array
(
[0] => the
...
Run Code Online (Sandbox Code Playgroud)
所以有些不对劲......
$word = $_POST['word']);
// Get a file into an array.
$file = file('master.txt');
if (in_array($word, $file)) {
echo "true";
}
else {
echo "false";
}
echo "<pre>";
print_r($file);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我这里我出错了,因为文件()返回的数组看起来很干净,而POSTed字("the")是file()数组中的第一个值.我已经检查过以确保POST数据实际上也正确提交.
TIA.
运行时file(),生成的数组将包含换行符:
注意:除非使用FILE_IGNORE_NEW_LINES,否则结果数组中的每一行都将包含行结尾,因此如果您不希望行结束,则仍需要使用rtrim().
最简单的方法可能是使用FILE_IGNORE_NEW_LINES参数.