|
|
|
| Изучаю ПХП, пишу разные програмки для теста и вот столкнулся:
у меня имеется текстовый файл с искомым словом $find (слова все в файле в разных строках). ْЧитаю содержимое файла в массив. Прогоняю массив через цикл, искомое слово не находит. Почему?
$find = "ananas";
/////////////////////////////////////////////////////////////READ ROWS FROM FILE INTO ARRAY
$fp = fopen ('list.txt', 'r');
if ($fp)
{
while (!feof($fp))
{
$row = fgets($fp,999);
$i++;
$array[$i] = $row;
echo $array[$i]." "; // Выводит в браузер: apple ananas banana и так далее...
}
}
else echo "error";
fclose ($fp);
/////////////////////////////////////////////////////////FIND MATCH IN ARRAY
$n = count ($array);
for ($j = 1; $j <= $n; $j++)
{
if ($array[$j] == $find) echo "Match found!";
}
|
Строка Match found! почему-то не выводится. Думаю над кодом уже сутки. Помогите. | |
|
|
|
|
автор: ..... (20.08.2009 в 22:54) |
|
|
для: grekkazzilla
(20.08.2009 в 22:33)
| | если поставить в начале скрипта такую функцию
error_reporting(E_ALL);
увидите Notice: Undefined variable: i in ..................
, это насчёт $i++;
и насчёт
$array[$i] = $row;
>>>
$array[$i] = trim($row);
уберёт переносы строк после слов | |
|
|
|
|
|
|
|
для: .....
(20.08.2009 в 22:54)
| | спасиба! с трим функцией работает | |
|
|
|
|
|
|
|
для: .....
(20.08.2009 в 22:54)
| | в пхп ведь помоему переменные не надо объявлять? почему она андефайнд? | |
|
|
|
|
автор: ..... (20.08.2009 в 23:22) |
|
|
для: grekkazzilla
(20.08.2009 в 23:15)
| | объявлять не обязательно , но желательно , так легче найти ошибки,
и не всегда и везде бывает выключен режим E_NOTICE
, если например заполнять этот массив сначала ,
с $array[0], то уже-бы могло получиться $array[] | |
|
|
|
|
|
|
|
для: .....
(20.08.2009 в 23:22)
| | Спасибо,
напишу $i=0 перед открытием файла. | |
|
|
|