Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Сравнение из файла


Автор: Slauta 11.10.2009, 18:32
Вот не пайму, где здесь ошибка?
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>
<form action="index.php" method="post">
<input name="text" type="text" size="20" />
<input type="submit" name="rrr" value="Спрасить!" />
</form>

<?
if (count($_POST)>0){
    $text=$_POST['text'];
    echo $text, "<br><br><br>";
 }

$handle = fopen("count.txt", "r+");

#$vapros = array("привет" => "прет");

while(!feof ($handle)){
    $count = fgets($handle, 4096);

    $count2 = fgets($handle, 4096);

    $vapros = array($count => $count2);
#    echo $count, "<br>";
#    echo $count2, "<br><br>";

}
   echo 'Ответ: ', $vapros[$text];



    fclose($handle);


?>

</body>
</html>

Автор: capitan 11.10.2009, 18:50
Slauta,  а что за ошибка? Код вижу, а описание ошибки нет.

Автор: Ипатьев 11.10.2009, 18:58
Цитата(Slauta @  11.10.2009,  18:32 Найти цитируемый пост)
Вот не пайму, где здесь ошибка?

в слове "пойму" и в слове "Спросить"

Автор: Slauta 12.10.2009, 22:43
Цитата(capitan @  11.10.2009,  18:50 Найти цитируемый пост)
Slauta,  а что за ошибка? Код вижу, а описание ошибки нет. 

echo 'Ответ: ', $vapros[$text]; должно выводить значение $count2 если $text = $count... но $vapros[$text] не выводит хотя на пэрл работает а они практически одинаковые... smile 

Цитата(Ипатьев @  11.10.2009,  18:58 Найти цитируемый пост)
в слове "пойму" и в слове "Спросить" 

я беларус - это извечная проблема правописания а и о...

Автор: capitan 12.10.2009, 23:03
Код

echo 'Ответ: ', $vapros[$text];


соединение должно идти через точку, а не через запятую
Код

echo 'Ответ: '.$vapros[$text];


И так везде по коду. 

Автор: Slauta 12.10.2009, 23:34
Цитата(capitan @  12.10.2009,  23:03 Найти цитируемый пост)
Выделить всёкод PHP
1:
    
echo 'Ответ: ', $vapros[$text];


соединение должно идти через точку, а не через запятую
Выделить всёкод PHP
1:
    
echo 'Ответ: '.$vapros[$text];


И так везде по коду. 

это вывод echo там то точка то запетая без разницы... но всё равно не работает...
может здесь ошибка?
Код

while(!feof ($handle)){
    $count = fgets($handle, 4096);
    $count2 = fgets($handle, 4096);
    $vapros = array($count => $count2);
#    echo $count, "<br>";
#    echo $count2, "<br><br>";
}

Автор: solenko 13.10.2009, 00:59
Стандартный метод отладки:
Код

echo '<pre>';
var_dump($varpos, $text);
echo '</pre>';
echo 'Ответ: ', $vapros[$text];

Ну и если вопрос не отпадет, то результат работы скрипта с этим изменением в студию. 

Автор: Slauta 13.10.2009, 11:38
Цитата(solenko @  13.10.2009,  00:59 Найти цитируемый пост)
echo '<pre>';
var_dump($varpos, $text);
echo '</pre>';
echo 'Ответ: ', $vapros[$text];

Вопрос не отпал!!!!

Цитата(solenko @  13.10.2009,  00:59 Найти цитируемый пост)

Ну и если вопрос не отпадет, то результат работы скрипта с этим изменением в студию.  

В как ую студию?

Автор: bars80080 13.10.2009, 11:45
Цитата(Slauta @  13.10.2009,  11:38 Найти цитируемый пост)
В как ую студию? 

сюда. запостите полученный код сюда

Автор: capitan 13.10.2009, 11:48
Slauta, 
1. Включаете показ ошибок (E_ALL)
2. Приводите здесь свой код
3. Приводите результат выполнения скрипта.
4. Если есть сообщения об ошибках - тоже приводите их

Автор: Slauta 13.10.2009, 17:22
Оно ошибок не выдаёт, и не выдаёт результат!!!
index.php
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>
<form action="index.php" method="post">
<input name="text" type="text" size="20" />
<input type="submit" name="rrr" value="Спрасить!" />
</form>

<?
if (count($_POST)>0){
    $text=$_POST['text'];
    echo $text, "<br><br><br>";
 }

$handle = fopen("count.txt", "r+");

#$vapros = array("привет" => "прет");

while(!feof ($handle)){
    $count = fgets($handle, 4096);

    $count2 = fgets($handle, 4096);

    $vapros = array($count => $count2);
#    echo $count, "<br>";
#    echo $count2, "<br><br>";

}
#   echo 'Ответ: '. $vapros[$text];
echo '<pre>';
var_dump($varpos, $text);
echo '</pre>';
echo 'Ответ: ', $vapros[$text];


    fclose($handle);


?>

</body>
</html>

Результат выполнения...
Код

привет


NULL
string(6) "привет"

Ответ: 

Содержание count.txt
Код

привет
пака
как дела
отлично

Автор: bars80080 13.10.2009, 22:58
какой-то аццкий код, с совершенно непонятным смыслом

ты вбиваешь в поле слово, и если есть такое в файле, то должно вывести следующее?
зачем?

кстати, ответ же написан. $varpos -> NULL, что не удивительно, ведь берётся последняя строка файла, поэтому и ответа никакого в путом массиве найти не может

Автор: gta4kv 14.10.2009, 08:19
Код

Оно ошибок не выдаёт, и не выдаёт результат!!!

Я что-то нигде не вижу в вашем коде то, что должно заставить PHP показать ошибку.

Вам писали:
Цитата

1. Включаете показ ошибок (E_ALL)

Не вижу где вы это сделали?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)