Функция переименования не работает с папками в php

#php #rename

Вопрос:

Это мой PHP-код

 <?php
rename(realpath(dirname(__FILE__)) . '/old', realpath(dirname(__FILE__)) . '/new');
?>
 

И я получаю эту ошибку

Предупреждение: переименовать(C:xampphtdocsgoaheadphpold, C:xampphtdocsgoaheadphp/new): Доступ запрещен (код: 5) в C:xampphtdocsgoaheadphptest.php на линии 3

В чем проблема?

Комментарии:

1. Не могли бы вы рассказать немного подробнее, каково ваше понимание диагностического сообщения «Доступ запрещен (код: 5)» или что вы из него прочитали?

2. Я думаю, что есть разрешение, которое я должен включить в xampp, не уверен

3. Да, это может быть. Но причин может быть и больше. Например, что переименовать папку невозможно, поскольку файловая система может также запретить доступ к ней для операции переименования папок .

4. Ну, есть ли какие-нибудь другие функции, которые могут переименовать папку?

5. Я не знаю, но если вы выполните поиск именно этого сообщения об ошибке, вы также должны найти некоторые материалы для этой ошибки, а также для операционной системы Windows. Так что вы, скорее всего, найдете более подробную информацию, более конкретную, у меня нет окон под рукой, поэтому я не могу на нее ответить.

Ответ №1:

Проблема в том, что файл php не имеет доступа к переименованию файлов, убедитесь, что вы запускаете веб-сервер от имени администратора (windows).

Для Linux вы введете этот код в терминале

chmod 777 php_file.php

  • Редактировать *

Если все это не работает, перейдите в раздел свойства файла, который необходимо переименовать, затем перейдите на вкладку безопасность и убедитесь, что все пользователи добавлены и могут редактировать файл (windows).

В Linux вы должны проверить владельца файла и изменить его