Вместо просто
$words = file('stopWords.txt');
Используйте
$words = file('stopWords.txt',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
флаги
Флаги необязательных параметров могут быть одной или несколькими из следующих констант:
FILE_USE_INCLUDE_PATH
Найдите файл в include_path.
FILE_IGNORE_NEW_LINES
Пропуск новой строки в конце каждого элемента массива
FILE_SKIP_EMPTY_LINES
Пропустить пустые строки
Это самый актуальный Omit newline at the end of each array element
.
В основном это то, что вы делаете:
if( in_array('able', ["able\n"]) ) {
echo "match found";
}
Что составляет false
. Или, другими словами, это не совсем эквивалентно выполнению explode("\n", $contents)
, поскольку строка (элементы массива) все еще содержит символ новой строки. Что, поскольку in_array
не является нечетким поиском (в основном это ==
), он не будет соответствовать им 'able' != 'able\n'
.
Примечание: Каждая строка в результирующем массиве будет включать конец строки, если только не используется FILE_IGNORE_NEW_LINES.
http://php.net/manual/en/function.file.php
Вы также можете обрезать элементы в массиве, как это $words=array_map('trim', $words);
, но зачем беспокоиться, если для него есть флаг.
Приветствия