[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с массивом
blade
Помогите разобраться!

Почему не срабатывает поиск по массиву, постоянно выводит 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

Спустя 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();
результат
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
(
[
0] => тест

[1] => фраза

[2] => слово

[3] => обмен
)


моя фунцкия
Array
(
[
0] => тест
[1] => фраза
[2] => слово
[3] => обмен
)


Визуально как бы одинаковы... хз

Да но по Вашей функции ищет норм а по 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);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.