2015-01-17 2 views
0

Я читал, что могу использовать is_writable(), чтобы проверить, доступна ли папка или файл.PHP is_writable(), чтобы проверить, может ли файл быть записан?

Как проверить, можно ли записать файл в папку?

  1. Я проверяю папку и если папка доступна для записи? Затем файл может быть помещен в эту папку?
  2. Что делать, если файл был записан в папку, как я могу проверить, перезаписывается ли это снова (отредактировано)? Нужно ли мне? Если да, то я проверяю файл вместо папки?
  3. Это безопасный метод (правильный) для этого?
+0

Вы когда-нибудь читали официальную [документацию] (http://php.net/manual/en/function.is-writable.php)? –

ответ

1

Функция PHP is_writable предназначена именно для этой цели. Если вы хотите проверить, остается ли файл доступным для записи после того, как вы написали файл, вы можете использовать ту же функцию.

1

Прочитайте документацию, указанную в вопросе, на который вы указали. is_writable() работает с файлами и каталогами.

Но ум: Если у вас есть такой код:

if (is_writeable("foo.txt")) { 
    $fp = fopen("foo.txt", "w"); 
    /* ...*/ 
} 

Это все еще может потерпеть неудачу. Например, может быть состояние блокировки или гонки (разрешения изменяются между двумя командами). Лучше попробуйте открыть и обработать ошибку.

$fp = @fopen("foo.txt", "w"); 
if (!$fp) { 
    report_error_in_some_way(); 
} 
+0

Mh, PHP4 Функции файла. –

+0

Использование оператора @ задает проблемы. Представьте, что ваша функция report_error_in_some_way() сломана, вам будет очень сложно найти реальную проблему. Никогда не используйте оператор @. –

Смежные вопросы