2012-03-31 2 views
9

Моя структура папок похожа -создать файл в другой каталог с PHP

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

У меня есть код для создания нового файла PHP в папке «страниц». код выглядит так:

$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);

+0

Вы устанавливаете '$ dir_path', но не используете его. Также я не уверен, если вы можете использовать относительные ссылки, вы можете использовать абсолютный путь. Убедитесь, что вы установили права на запись на запись карты. – ArendE

+0

'$ page_name' не установлен, и вы didint напишите, какой файл он – safarov

+0

, где вы задаете' $ page_name', также у вас есть синтаксическая ошибка в этой строке '' Dont forget закрывающая точка с запятой –

ответ

18

Вот пример, используя более простую 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) . ")"; 
} 
?> 
1

умышленно пропустили конкатенацию $ dir_path и $ ourFileName;

Теперь

  1. ваш каталог/файл writable?
  2. проверить на наличие current working directory
  3. является вашей ошибкой?
6
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file"); 

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

+0

работает для меня thankx –

0

Попробуйте

$pagename = 'your_filename'; 
$newFileName = '../pages/'.$pagename.".php"; 
+0

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст, касающийся того, почему и/или как этот код отвечает на вопрос, улучшает его долгосрочная ценность. – NathanOliver

1

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

+0

Вы были правы! Я изменил разрешения папки, в которой я хотел создать файлы с ней с помощью chmod 777, и fopen создал файл правильно. – MaryamH

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