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

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

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

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

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();
}
1

По вопросам рекламы [email protected]