Мне очень нужно создавать файл.XML внутри моей темы каждый раз, когда пользователь заходит на мой сайт.
Но я не могу.
Этот код в заголовке:
<?php $ourFileName = "testFile.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fclose($ourFileHandle); ?>
Просто ничего не делает. Он не отображает «невозможно открыть файл», но и не создает файл.
Я тестирую его на своей машине /localhost, и этот код отлично работает везде (поэтому права доступа к файлам в порядке), но не в WordPress.
Почему это происходит? 🙁
Доступ к файловой системе является сложной задачей между различными возможными конфигурациями сервера. Если вам нужно надежно реализовать его в WP, вам следует изучить его API для этого.
См. Использование WP_Filesystem.
Чтобы расширить ответ Чипа, убедитесь, что каталог, в который вы пишете (который не был указан), имеет права на запись для сервера. Быстрый тест состоит в том, чтобы указать
/tmp/testfile.txt
для вашего файла и посмотреть, работает ли это — возможно, так оно и будет.это странно, потому что у меня чистая, действующая установка XAMPP, а fopen() работает ВЕЗДЕ, кроме WordPress… Так что я не уверен в проблемах с конфигурацией сервера…
Я видел, как fopen() использовался — с невероятно злым умыслом — в некоторых темах, отправленных в репозиторий тем WPORG.
Это не проблема WordPress; WordPress будет выполнять fopen() так же, как и любую другую функцию PHP.
Это может быть проблема с конфигурацией вашего сервера (например, в безопасном режиме).