2012-03-31 54 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

相關問題