[英]in_array returning false when should return true
我有一個簡單的腳本,它從表單中獲取一個單詞並評估它是否存在於文件(.txt)中。 txt文件在每一行上都有一個單詞或短語。 文件中沒有\\ t或\\ r \\ n。
但是,當我提交表單並POST文件中的第一個單詞(例如“the”)時,以下腳本將返回false,此時它應返回true。
我知道這一點,因為當我打印出數組$文件時,我進入屏幕:
Array
(
[0] => the
...
所以有些不對勁......
$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>";
有人可以告訴我這里我出錯了,因為文件()返回的數組看起來很干凈,而POSTed字(“the”)是file()數組中的第一個值。 我已經檢查過以確保POST數據實際上也正確提交。
TIA。
運行file()
,生成的數組將包含換行符:
注意:除非使用FILE_IGNORE_NEW_LINES,否則結果數組中的每一行都將包含行結尾,因此如果您不希望行結束,則仍需要使用rtrim()。
最簡單的方法可能是使用FILE_IGNORE_NEW_LINES
參數。
是否將FILE_IGNORE_NEW_LINES添加到file()幫助?
$file = file('master.txt', FILE_IGNORE_NEW_LINES);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.