Forum Webscript.Ru

Программирование => PHP => Тема начата: metton от 26 Сентября 2002, 00:03:19

Название: не работают функции работы с файлами...
Отправлено: metton от 26 Сентября 2002, 00:03:19
Собственно, сабж
Открывает нормально, но при передаче, например, в ф-цию чтения fread файл хэндлера пишет ошибку: 1 is not a valid File-Handle resource...
Подозреваю, что-то в php.ini пописать надобно, а что - не знаю...

Заранее спасибо... :)
Название: не работают функции работы с файлами...
Отправлено: Дмитрий Попов от 26 Сентября 2002, 00:07:18
А можно этот кусок с fread?
Название: не работают функции работы с файлами...
Отправлено: metton от 26 Сентября 2002, 00:23:31

    $txt_file_src = \'my_file.txt\';
    $file = fopen ( $txt_file_src, \'r\' );
    if ( !$file )
        echo ( \'

Can\\\'t open \' . $txt_file_src . \'

\' );
    $first23chars = fread ( $file, 23 );

вот-а...
Название: не работают функции работы с файлами...
Отправлено: ThE0ReTiC от 26 Сентября 2002, 01:36:12
metton
Вообще-то прописывать ничего не надо.
По крайней мере при использовании стандартной настройки все должно работать...
А если включить error_reporting = E_ALL ?
Название: не работают функции работы с файлами...
Отправлено: Дмитрий Попов от 26 Сентября 2002, 03:01:39
metton
Вряд-ли конечно я прав, но все же, а в файле точно есть 23 байта?

И еще, попробуйте в fread заменить $file на $txt_file_src.
Знаю, что неправильно, но посмотрел тут у себя пару работающих своих скриптов, а в одном из них так.
Просто ради интереса, проверьте?


Вообще все и так должно работать...
Название: не работают функции работы с файлами...
Отправлено: metton от 26 Сентября 2002, 22:02:13
Дмитрий Попов
Самое удивительное - уже пробовал...
В такой ситуации и не такое попробуешь, но...
результата ноль...
Название: не работают функции работы с файлами...
Отправлено: metton от 26 Сентября 2002, 22:11:27
Дмитрий Попов
и байтов гораздо больше 23...
пробовал и с 1...
нема...
Название: не работают функции работы с файлами...
Отправлено: Макс от 26 Сентября 2002, 23:20:08
а с правами доступа все нормально?


PS
скорее всего просто какая-то глупая ошибка, которую нарочно не придумаешь.

попробуй код засунуть в конструкцию
if (is_file("my_file.txt")) {
.... // твой код
} else {
echo "file not found";
}
Название: не работают функции работы с файлами...
Отправлено: metton от 27 Сентября 2002, 00:46:57
с правами доступа вроде усё ок - я дома это тестил...
да и файл существует...
странно...
а ведь fpassthru работает, а fread и fgetc, например, не работают...
Название: не работают функции работы с файлами...
Отправлено: xnx от 27 Сентября 2002, 00:54:04
metton
там где echo у тебя проблема с \' (заслешить надо в Can\'t)
попробуй переписать код заново, может
Цитировать
какая-то глупая ошибка, которую нарочно не придумаешь.
Название: не работают функции работы с файлами...
Отправлено: metton от 27 Сентября 2002, 01:03:32
к сожалению, не это...
это издержка переноса кода с одного форума на другой :)
у меня в коде есть эта слэшка...
а пишет именно ту ошибку, которую я указал в топике...
1 is not a valid File-Handle resource...
Название: не работают функции работы с файлами...
Отправлено: Макс от 27 Сентября 2002, 01:18:43
error_reporting(E_ALL); стоит?


ЗЫ
версия php какая? Попробуй другую скачать
на bugs.php.net поройся, может чего и найдешь

ЗЫ
убери все лишнее, оставь только fopen() fread() fclose()
файл другой попробуй, Windows переуставнови, ....
Название: не работают функции работы с файлами...
Отправлено: metton от 27 Сентября 2002, 01:28:47
Цитировать
Windows переуставнови, ....

неудачная шутка...

а вот переустановить ПХП попробую...
Название: не работают функции работы с файлами...
Отправлено: PilotV от 27 Сентября 2002, 03:22:04
А ты в точности тот код привел, что у тебя, 1:1?
Мессага странно звучит. Попробуй перед fread написать
echo gettype($file);
- что выведет?
Название: не работают функции работы с файлами...
Отправлено: metton от 28 Сентября 2002, 21:17:56


 
    <br />   

 


    $txt_file_src = \'my_file.txt\';
    $file = fopen ( $txt_file_src, \'r\' );
    if ( !$file )
        echo ( \'

Can\\ \'t open \' . $txt_file_src . \'

\' );
    fpassthru ( $file );
    rewind ( $file );
    $first23chars = fread ( $file, 1 );
    $abc = fgetc ( $file );

?>

 


вот весь код исключая комментарии...
Название: не работают функции работы с файлами...
Отправлено: metton от 28 Сентября 2002, 21:20:29
в строке с эхой есть слэш, просто он куда-то пропадает при посыле сообщения... (ошибка точно не в слэше)...
выдаёт:
1 is not a valid File-Handle resource...
Название: не работают функции работы с файлами...
Отправлено: PilotV от 29 Сентября 2002, 02:14:11
Хе.. повторил я тут у себя эксперимент - то же самое. А вот если закомментировать fpassthru - все работает.
Я было подумал - хитрый баг, а что выясняется (RTFM рулит):
Цитировать
The file is closed when fpassthru() is done reading it (leaving fp useless).
Название: не работают функции работы с файлами...
Отправлено: metton от 29 Сентября 2002, 02:53:56
PilotV
Огромное спасибо 8)
Т.е. нужно заново открывать файл?..
Название: не работают функции работы с файлами...
Отправлено: PilotV от 29 Сентября 2002, 03:51:55
Очевидно
Название: не работают функции работы с файлами...
Отправлено: metton от 29 Сентября 2002, 20:42:32
PilotV
Ещё раз огромное спасибо... :)
А то бы ещё долго мучился...