2012-03-31 56 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 2012-03-31 16:08:58

+0

'$ page_name'没有设置,你didint写哪个文件是 – safarov 2012-03-31 16:09:01

+0

你在哪里设置'$ page_name'你也有这条线上的语法错误'<?php echo“something ...”?>''不要忘记结尾的分号 – 2012-03-31 16:09:46

回答

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

你是否故意遗漏了concordating $ dir_path和$ ourFileName;

现在

  1. 是你的目录/文件writable
  2. 检查您的current working directory
  3. 是您的error_reporting吗?
6
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file"); 

使第三线以上的变化,它可能会工作;我试过了,它工作。

+0

对我有用thankx – 2017-07-04 11:40:46

0

试试这个

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

虽然这段代码可能回答这个问题,但是提供关​​于为什么和/或代码如何回答这个问题的附加上下文会改进它长期的价值。 – NathanOliver 2015-08-31 15:15:51

1

有同样的问题,文件不会在文件夹中创建具有不同权限,确保文件夹的权限是一样一样的其他文件。

+0

你说得对!我改变了我想用chmod 777创建文件的文件夹的权限,并且fopen正确地创建了这个文件。 – MaryamH 2017-07-19 14:22:25

相关问题