Почему не срабатывает поиск по массиву, постоянно выводит 0 даже если в файле есть такие слова которые я ввожу
<form action="" method="POST">
Введите слово : <input type="text" size="30" maxlength="100" name="slovo" />
<br />
<input type="submit" value="Проверить существование слова" style="margin-top: 10px;" />
</form>
</div>
<?php
if (isset($_POST["slovo"]))
{
$slovo = $_POST["slovo"];
$line = file("test.txt");
if (in_array($slovo, $line))
{
echo "1";
}
else echo "0";
}
?>
Спустя 4 минуты, 16 секунд (9.05.2011 - 13:11) walerus написал(а):
Причин может быть много, разные кодировки файла и скрипта, РеГиСтР искомого слова может не совпадать со значением в массиве...
Покажи пример что ищешь и что в массиве...
Покажи пример что ищешь и что в массиве...
Спустя 1 минута, 49 секунд (9.05.2011 - 13:13) blade написал(а):
файл test.txt
в форму вставляю любое из этих слов и выводит 0
тест
фраза
слово
обмен
в форму вставляю любое из этих слов и выводит 0
Спустя 1 минута, 9 секунд (9.05.2011 - 13:14) walerus написал(а):
Кодировки файла и скрипта 100% совпадают ?
Спустя 1 минута, 7 секунд (9.05.2011 - 13:16) blade написал(а):
да
Спустя 3 минуты, 3 секунды (9.05.2011 - 13:19) alex12060 написал(а):
var_dump($line);
Что выводит?
Спустя 18 секунд (9.05.2011 - 13:19) walerus написал(а):
как то функция file(); не так делает массив из файла, юзай мою функцию.
<?php
function loadAsArray($filename)
{
if (!file_exists($filename))
return array();
$result = explode("\n", file_get_contents($filename));
foreach($result as &$line)
$line = trim($line, " \r\n\t");
$result = array_filter(&$result, create_function('$v', 'return !empty($v);'));
return array_values(&$result);
}
if (isset($_POST["slovo"]))
{
$slovo = $_POST["slovo"];
$line = loadAsArray("test.txt");
if (in_array($slovo, $line))
{
echo "1";
}
else echo "0";
}
?>
Спустя 1 минута, 12 секунд (9.05.2011 - 13:20) blade написал(а):
Цитата (alex12060 @ 9.05.2011 - 10:19) |
var_dump($line); Что выводит? |
array(4) { [0]=> string(6) "тест " [1]=> string(7) "фраза " [2]=> string(7) "слово " [3]=> string(5) "обмен" }
Спустя 1 минута, 44 секунды (9.05.2011 - 13:22) walerus написал(а):
кстати не понятно почему так...
функция file();
результат
моя фунцкия
Визуально как бы одинаковы... хз
функция file();
результат
Array
(
[0] => тест
[1] => фраза
[2] => слово
[3] => обмен
)
моя фунцкия
Array
(
[0] => тест
[1] => фраза
[2] => слово
[3] => обмен
)
Визуально как бы одинаковы... хз
Спустя 1 минута, 14 секунд (9.05.2011 - 13:23) blade написал(а):
Цитата (walerus @ 9.05.2011 - 10:22) |
кстати не понятно почему так... функция file(); результат Array моя фунцкия Array Визуально как бы одинаковы... хз |
Да но по Вашей функции ищет норм а по file() нехочет
Спустя 1 минута, 53 секунды (9.05.2011 - 13:25) alex12060 написал(а):
$line = array_map('trim', file("test.txt"));
Спустя 8 минут, 15 секунд (9.05.2011 - 13:33) blade написал(а):
спасибо! помогли!
Спустя 10 часов, 18 минут, 57 секунд (9.05.2011 - 23:52) linker написал(а):
array_map() - слишком тормознуто,
$line = file("test.txt", FILE_IGNORE_NEW_LINES);