Опубликован: 01.03.2005 | Уровень: для всех | Доступ: платный
Лекция 9:

Работа с файловой системой

Проверка существования файла

Итак, создавать файл мы научились, записывать данные в него - научились, считывать данные из файла - тоже научились. Но вот вопрос: а что если файла, с которым мы пытаемся проделать все эти операции, не существует? Или он недоступен для чтения или записи? Очевидно, что в таком случае ни одна из изученных нами функций работать не будет и PHP выдаст сообщение об ошибке. Чтобы отслеживать такого рода ошибки, можно использовать функции file_exists(),   is_writable(),   is_readable()

Функция file_exists

Синтаксис:

bool file_exists (имя файла или директории)

Функция file_exists() проверяет, существует ли файл или директория, имя которой передано ей в качестве аргумента. Если директория или файл в файловой системе сервера существует, то функция возвращает TRUE, в противном случае - FALSE. Результат работы этой функции кэшируется. Соответственно очистить кэш можно, как уже отмечалось, с помощью функции clearstatcache(). Для нелокальных файлов использовать функцию file_exists() нельзя.

<?php
$filename = 'c:/users/files/my_file.html';
if (file_exists($filename)) {
  print "Файл <b>$filename</b> существует";
} else {
  print "Файл <b>$filename</b> 
        НЕ существует";
}
?>
Пример 9.8. Использование функции file_exists()

Функция is_writable

Если кроме проверки существования файла нужно узнать еще, разрешено ли записывать информацию в этот файл, следует использовать функцию is_writable() или ее псевдоним - функцию is_writeable().

Синтаксис:

bool is_writable (имя файла или директории)

Эта функция возвращает TRUE, если файл (или директория) существует и доступен для записи. Доступ к файлу осуществляется под той учетной записью пользователя, под которой работает сервер (чаще всего это пользователь nobody или www). Результаты работы функции is_writable кэшируются.

Функция is_readable

Если кроме проверки существования файла нужно узнать еще, разрешено ли читать информацию из него, нужно использовать функцию is_readable().

Синтаксис:

bool is_readable (имя файла)

Эта функция работает подобно функции is_writable().

<?php
$filename = 'c:/users/files/my_file.html';
if (is_readable($filename)) {
  print "Файл <b>$filename</b> существует
     и доступен для чтения";
} else {
  print "Файл <b>$filename</b> 
     НЕ существует или 
     НЕ доступен для чтения";
}
?>
Пример 9.9. Использование функции is_readable()
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?

 

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.547636872848watchdog( )../bootstrap.inc:0
23.547936875312module_invoke( )../bootstrap.inc:967
33.547936877168call_user_func_array ( )../module.inc:462
43.547936877504devel_watchdog( )../module.inc:462
53.548036878352decode_entities( )../devel.module:382
63.548036880272drupal_error_handler( )../devel.module:340
73.548036883880watchdog( )../common.inc:663
83.548136885944module_invoke( )../bootstrap.inc:967
93.548136887800call_user_func_array ( )../module.inc:462
103.548136888136devel_watchdog( )../module.inc:462
113.548136888832decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.547636872848watchdog( )../bootstrap.inc:0
23.547936875312module_invoke( )../bootstrap.inc:967
33.547936877168call_user_func_array ( )../module.inc:462
43.547936877504devel_watchdog( )../module.inc:462
53.548036878352decode_entities( )../devel.module:382
63.548036880272drupal_error_handler( )../devel.module:340
73.548036883880watchdog( )../common.inc:663
83.548136885944module_invoke( )../bootstrap.inc:967
93.548136887800call_user_func_array ( )../module.inc:462
103.548136888136devel_watchdog( )../module.inc:462
113.548136888832decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.547636872848watchdog( )../bootstrap.inc:0
23.547936875312module_invoke( )../bootstrap.inc:967
33.547936877168call_user_func_array ( )../module.inc:462
43.547936877504devel_watchdog( )../module.inc:462
53.548036878352decode_entities( )../devel.module:382
63.548736880464drupal_error_handler( )../devel.module:340
73.548836884152watchdog( )../common.inc:663
83.548836886216module_invoke( )../bootstrap.inc:967
93.548836888072call_user_func_array ( )../module.inc:462
103.548836888408devel_watchdog( )../module.inc:462
113.548836889184decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.547636872848watchdog( )../bootstrap.inc:0
23.547936875312module_invoke( )../bootstrap.inc:967
33.547936877168call_user_func_array ( )../module.inc:462
43.547936877504devel_watchdog( )../module.inc:462
53.548036878352decode_entities( )../devel.module:382
63.548736880464drupal_error_handler( )../devel.module:340
73.548836884152watchdog( )../common.inc:663
83.548836886216module_invoke( )../bootstrap.inc:967
93.548836888072call_user_func_array ( )../module.inc:462
103.548836888408devel_watchdog( )../module.inc:462
113.548836889184decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.549436873392watchdog( )../bootstrap.inc:0
23.549436875456module_invoke( )../bootstrap.inc:967
33.549536877312call_user_func_array ( )../module.inc:462
43.549536877648devel_watchdog( )../module.inc:462
53.549536878352decode_entities( )../devel.module:382
63.549536880272drupal_error_handler( )../devel.module:340
73.549536883880watchdog( )../common.inc:663
83.549536885944module_invoke( )../bootstrap.inc:967
93.549636887800call_user_func_array ( )../module.inc:462
103.549636888136devel_watchdog( )../module.inc:462
113.549636888832decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.549436873392watchdog( )../bootstrap.inc:0
23.549436875456module_invoke( )../bootstrap.inc:967
33.549536877312call_user_func_array ( )../module.inc:462
43.549536877648devel_watchdog( )../module.inc:462
53.549536878352decode_entities( )../devel.module:382
63.549536880272drupal_error_handler( )../devel.module:340
73.549536883880watchdog( )../common.inc:663
83.549536885944module_invoke( )../bootstrap.inc:967
93.549636887800call_user_func_array ( )../module.inc:462
103.549636888136devel_watchdog( )../module.inc:462
113.549636888832decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.549436873392watchdog( )../bootstrap.inc:0
23.549436875456module_invoke( )../bootstrap.inc:967
33.549536877312call_user_func_array ( )../module.inc:462
43.549536877648devel_watchdog( )../module.inc:462
53.549536878352decode_entities( )../devel.module:382
63.550036880464drupal_error_handler( )../devel.module:340
73.550136884152watchdog( )../common.inc:663
83.550136886216module_invoke( )../bootstrap.inc:967
93.550136888072call_user_func_array ( )../module.inc:462
103.550136888408devel_watchdog( )../module.inc:462
113.550136889184decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.549436873392watchdog( )../bootstrap.inc:0
23.549436875456module_invoke( )../bootstrap.inc:967
33.549536877312call_user_func_array ( )../module.inc:462
43.549536877648devel_watchdog( )../module.inc:462
53.549536878352decode_entities( )../devel.module:382
63.550036880464drupal_error_handler( )../devel.module:340
73.550136884152watchdog( )../common.inc:663
83.550136886216module_invoke( )../bootstrap.inc:967
93.550136888072call_user_func_array ( )../module.inc:462
103.550136888408devel_watchdog( )../module.inc:462
113.550136889184decode_entities( )../devel.module:382