is_file vs file_exists

is_file или file_exists ?

  • is_file

    Голосов: 9 33,3%
  • file_exists

    Голосов: 15 55,6%
  • is_readable / is_writable

    Голосов: 3 11,1%

  • Всего проголосовало
    27

Макс

Старожил PHPClub
is_file vs file_exists

Просто интересно, что вы используете для проверки существования файла и почему?

Как по мне, правильный ответ - [m]is_file[/m] (поскольку он не возврщает true, если есть каталог, с указанным именем). Так проверка будет более строгой.

Но почему-то все используют [m]file_exists[/m], причем так часто, что я начал сомневаться в своих знаниях.
Даже в zend-овских статьях используют file_exists.
Из имеющихся у меня pear-классов больше 100 раз использую file_exists и только 40 раз - is_file
 

Сергей123

Новичок
file_exists плюс проверку на пустоту имени.
Никогда не задумывался. Мнения других интересны...

-~{}~ 15.10.04 15:00:

Перечитал ман - вроде всё прозрачно, если файл проверять - is_file, однозначно.
 

Cougar

Кошак
Я пользую is_file() в комбинации с is_readable()
Почему? Патамушта! :) так исторически сложилось.
 

Krisha

pain in the neck
Макс
Ну дык, блин:
is_file -- Tells whether the filename is a regular file
file_exists -- Checks whether a file or directory exists
:)
 

MD

Guest
таже фигня. file_exists, почему никогда не задумывался ... наверно в первых примерах которые разгребал использовалась именно она.
 

crocodile2u

http://vbolshov.org.ru
Хм... Всегда использовал file_exists, но тепер, очевидно, буду проверять с пом. is_file(). Thanks, Makc
 

n00b

Guest
file_exists, потому что часто и то и другое проверяю. И не заморачиваюсь :)
 

Макс

Старожил PHPClub
Krisha
ман я читал. Просто часто читаю чужие исходники или статьи и там используют file_exists где по логике надо is_file - для проверки существования файла. Вот и создал эту тему
 

MD

Guest
bool is_readable ( string filename)
Returns TRUE if the filename exists and is readable.
еще одна опция в опрос :)
 

Макс

Старожил PHPClub
MD
каталоги тоже writable
пример :
PHP:
$file = '.';
if (is_writable($file)) echo "Ok";
выводит Ok если каталог доступен для записи

-~{}~ 15.10.04 16:30:

с is_readable тоже самое

-~{}~ 15.10.04 16:32:

добавил еще один пункт
 

MD

Guest
я согласен, я просто предложил.
file_exists('.') тоже ведь выведет Ок.
 

IntenT

SkyDiver
блин, если проверять для создания файла - то file_exists
если для чтения - то is_file

У каждой из функций своя область применения
 

ForJest

- свежая кровь
сначала делаешь
@fopen с нужными ключами открытия, а потом, если уже не получилось пользуешь всякие is_file, file_exists и всякое такое - для уточнения что случилось и почему он не открылся :). IMHO самая лучшая практика - если уж ты его открыл, с ним уже ничег не случится - можешь в него писать, можешь его читать и т.д.
Если уж не открылся для нужной операции - можешь проверять сколько тебе влезет причину :).
 

Nirva

Dmitry Polyakov
is_file() - обычно это выглядит if (is_file(...)) unlink(...);
для остального fopen
 

ForJest

- свежая кровь
Nirva
Правильно - зачем нам лишние проверки? Нет файла - нет проблемы :)
 
Сверху