簡體   English   中英

應該返回true時in_array返回false

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM