создать файл в другой директории с помощью php - PullRequest
15 голосов
/ 31 марта 2012

Моя структура папок выглядит как -

root
  admin
    create_page.php
  pages
    my_page1.php
    my_page2.php

У меня есть код для создания нового php-файла в папке "pages". код похож на -

$dir_path = "../pages/";
$ourFileName = '../'.$page_name.".txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
$ourFileContent = '<?php echo "something..." ?>';
if (fwrite($ourFileHandle, $ourFileContent) === FALSE) {
    echo "Cannot write to file ($filename)";
    exit;
}

Код выполняется нормально .. без проблем. но страница не создается. пожалуйста, скажите мне, что я делаю не так. есть ли проблема с путем? fclose ($ ourFileHandle);

Ответы [ 5 ]

22 голосов
/ 31 марта 2012

Вот пример использования более простой file_put_contents () оболочки для fopen, fwrite, fclose

<?php 
error_reporting(E_ALL);

$pagename = 'my_page1';

$newFileName = './pages/'.$pagename.".php";
$newFileContent = '<?php echo "something..."; ?>';

if (file_put_contents($newFileName, $newFileContent) !== false) {
    echo "File created (" . basename($newFileName) . ")";
} else {
    echo "Cannot create file (" . basename($newFileName) . ")";
}
?>
7 голосов
/ 18 ноября 2012
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file");

Внесите вышеуказанные изменения в третью строку, и это, вероятно, будет работать;Я попробовал, и это сработало.

1 голос
/ 13 марта 2017

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

1 голос
/ 31 марта 2012

умышленно пропустили объединение $ dir_path и $ ourFileName;

сейчас

  1. Ваш каталог / файл доступен для записи ?
  2. проверка вашего текущего рабочего каталога
  3. ваша ошибка сообщается?
0 голосов
/ 31 августа 2015

Попробуйте это

$pagename = 'your_filename';
$newFileName = '../pages/'.$pagename.".php";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...