Что-то не так в этом коде? Во всех источниках он описан как работоспособный. Более того, он поначалу даже читал содержимое файла. Но перестал.. Что могло произойти?
$filename = 'main.hd'; // файл лежит рядом с .php файлом
if (filesize($filename)) {
$hfile = fopen ($filename,"r");
while (!feof($hfile)) {
$str = fgets($hfile);
$paramvalue .= $str;
}
fclose($hfile);
пишет в браузере вот так:
Warning: feof(): 3 is not a valid stream resource in C:\Program Files\Apache Group\Apache2\htdocs\test_index.php on line 16
Warning: fgets(): 3 is not a valid stream resource in C:\Program Files\Apache Group\Apache2\htdocs\test_index.php on line 17
Warning: fclose(): 3 is not a valid stream resource in C:\Program Files\Apache Group\Apache2\htdocs\test_index.php on line 22 и т.д.
1. Дмитрий.К - 22 Октября, 2008 - 14:43:11 - перейти к сообщению
2. Champion - 22 Октября, 2008 - 15:14:05 - перейти к сообщению
Странно. А fopen ошибок, как я понял, не выдает? Попробуйте вывести значение переменной $hfile сразу после fopen. Вы привели весь участок кода? Может быть после fopen вы производите какие6-нибудь присвоения $hfile или удаляете файл?..
3. valenok - 22 Октября, 2008 - 16:41:14 - перейти к сообщению
Стандартная ошибка у этой функции
Warning: fgets(): supplied argument is not a valid stream resource
А что это за тройка и откуда она берется..
Оформите пожалуйста код так чтоб он был читабелен и было ясно где какая строка.
Warning: fgets(): supplied argument is not a valid stream resource
А что это за тройка и откуда она берется..
Оформите пожалуйста код так чтоб он был читабелен и было ясно где какая строка.
4. Champion - 22 Октября, 2008 - 16:50:59 - перейти к сообщению
valenok пишет:
Warning: fgets(): supplied argument is not a valid stream resource
А что это за тройка и откуда она берется..
А что это за тройка и откуда она берется..
Вот это-то и интересно - вроде как fopen ошибок не дала, значит в $hfile хранится правильный дескриптор. А ворнинг говорит обратное. 3 - как раз и есть этот дескриптор. Странная штука
5. Дмитрий.К - 23 Октября, 2008 - 08:52:45 - перейти к сообщению
Спасибо..наверное это был сбой в работе сервера..хотя перезагрузка компьютера не помогала.. может это было связано с тем, что засунута в пользовательскую функцию..вообщем я переписал код с использованеим функции file..все нормализовалось..
6. Champion - 23 Октября, 2008 - 08:57:50 - перейти к сообщению
Дмитрий.К пишет:
Это точно не сбой в работе сервера)наверное это был сбой в работе сервера..хотя перезагрузка компьютера не помогала
Дмитрий.К пишет:
О чем речь? ЧТО туда была засунута?
может это было связано с тем, что засунута в пользовательскую функцию
7. asked86 - 25 Октября, 2008 - 17:50:15 - перейти к сообщению
На будующее такие ошибки решаются следующим образом!
1) Если текста не много, то вырезаем по одной строчке, и каждый раз ее компилим и смотрим на ее поведение !
2) Если что то не получпется вставляем эту строку на место, и вырезаем другую и опять смотрим на поведение !
3) Попробуйте заменить переменные другими именами, как не странно, но я с такими ошибками сталкивался ! да да это правда !
1) Если текста не много, то вырезаем по одной строчке, и каждый раз ее компилим и смотрим на ее поведение !
2) Если что то не получпется вставляем эту строку на место, и вырезаем другую и опять смотрим на поведение !
3) Попробуйте заменить переменные другими именами, как не странно, но я с такими ошибками сталкивался ! да да это правда !
8. Champion - 25 Октября, 2008 - 18:01:03 - перейти к сообщению
asked86 пишет:
то вырезаем по одной строчке,
Если уж на то пошло, то так будет гораздо быстрее:
1-Вырезаем половину кода.
2-Если ошибка осталась, работаем по этому же алгоритму с другой половиной кода.
3-Если ошибка убралась, возвращаем вырезанное на место и вырезаем половину того, что только что вернули
4-возвращаемся в п.2 до тех пор, пока не найдем ошибку
9. asked86 - 25 Октября, 2008 - 19:42:22 - перейти к сообщению
Вот вы над этим смеетесь, а в какой то из книг знаменитого профессионала в области программирования, это один из методов поиска ошибок и выявления причин!
Иногда одна ошибка порождает все другие, и для ее выяснения так и следует их искать !
Иногда одна ошибка порождает все другие, и для ее выяснения так и следует их искать !
10. Champion - 25 Октября, 2008 - 19:47:36 - перейти к сообщению
Кстати, можно не вырезать, а пользоваться комментированием))
11. asked86 - 25 Октября, 2008 - 19:48:47 - перейти к сообщению
Я тоже не признавал этот метод, но когда кодил серьезный проект то потом осознал.
Было такое что искал ошибку неделю, хотя и по процедурам небольшим все разбито было, ошибку которую выдавал компилятор, она была из-за ошибки на 10 строк выше о которой, сам компилятор молчал ! И такое бывает, так что не надо быть скептиком !
(Добавление)
На счет комментариев да, полностью с вами согласен !!!
Вы правы но сильно не стоит комментировать ! Очевидные строки комментировать не стоит ,
ну типа запись в файл, чтение , цикл , деление и т.п, а то начинающие начитаются про комментарии, и начинают все комментировать, а во время отладки собственные комменты бесят !
(Добавление)
Ну в конце концов есть другие опрераторы:
Альтернатива,
Было такое что искал ошибку неделю, хотя и по процедурам небольшим все разбито было, ошибку которую выдавал компилятор, она была из-за ошибки на 10 строк выше о которой, сам компилятор молчал ! И такое бывает, так что не надо быть скептиком !
(Добавление)
На счет комментариев да, полностью с вами согласен !!!
Вы правы но сильно не стоит комментировать ! Очевидные строки комментировать не стоит ,
ну типа запись в файл, чтение , цикл , деление и т.п, а то начинающие начитаются про комментарии, и начинают все комментировать, а во время отладки собственные комменты бесят !
(Добавление)
Ну в конце концов есть другие опрераторы:
Альтернатива,