|
21 ошибка программиста phpВозьмем кусок кода, который открывает файл и выводит его построчно: <?php $fp = @fopen ( 'somefile.txt', 'r' ) or die ( 'Не могу открыть файл somefile.txt' ); while ($line = @fgets ( "$fp", 1024)) // Здесь ошибка! { print $line; } @fclose ("$fp") // И здесь тоже color or die( 'Не могу закрыть файл somefile.txt' ); ?> В данном случае появится сообщение об ошибке типа: "Warning: Supplied argument is not a valid File-Handle resource in tst.php on line 4" ("Внимание: аргумент не может являться дескриптором файла") Это вызвано тем, что переменная $fp заключена в двойные кавычки, что однозначно определяет ее как строку, тогда как функция fopen() ожидает в качестве первого аргумента дескриптор, но не строку. Соответственно, вам следует использовать переменную, которая может содержать дескриптор. Примечание: В данном случае, строковый тип допустим синтаксически. Для решения проблемы следует просто убрать двойные кавычки: <?php $fp = @fopen ( 'somefile.txt', 'r' ) or die ( 'Не могу открыть файл somefile.txt' ); while ( $line = @fgets ($fp, 1024) ) { print $line; } @fclose ($fp) or die ( 'Не могу закрыть файл somefile.txt' ); ?> Как избежать неправильного приложения семантики? Продолжение статьи: ч.1 Продолжение статьи: ч.2 Продолжение статьи: ч.3 Продолжение статьи: ч.4 Продолжение статьи: ч.5 Продолжение статьи: ч.6 Продолжение статьи: ч.7 Продолжение статьи: ч.8 Продолжение статьи: ч.9 Продолжение статьи: ч.10 Продолжение статьи: ч.11 Продолжение статьи: ч.12 Продолжение статьи: ч.13 Продолжение статьи: ч.14 Продолжение статьи: ч.15 Другие статьи по теме: - встроенные функции в php- приемы безопасного программирования веб-приложений - 21 ошибка программиста php - PHP - система разработки скриптов - гостевая - это просто! |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |