2016-04-28 81 views
1

我有一個users目錄和登錄/註冊系統的子目錄。我有一個文件,testing.php,試圖找出如何在users目錄中創建一個目錄,並在同一目錄中創建一個PHP文件。這裏是我的代碼:與fopen()php函數有問題

<?php 

$directoryname = "SomeDirectory"; 
$directory = "../" . $directoryname; 

mkdir($directory); 

$file = "../" . "ActivationFile"; 

fopen("$file", "w"); 

?> 

我能夠得到mdkir($directory)工作,但不是fopen("$file", "w")

+0

你試過'fopen($文件,「w」);'? – rafaelcpalmeida

+0

@rafaelcpalmeida這是我在上面發佈的代碼。它沒有創建該文件。 –

+0

'fopen'會返回一個句柄嗎?我注意到你沒有文件擴展名。 – DevDonkey

回答

1

您可以使用功能touch()創建文件:

如果文件不存在,它將被創建。

指定文件路徑時,您也忘了重新使用$directory,因此文件未在新目錄中創建。

正如Fred -ii-在評論中報告的那樣,還應該啓用錯誤報告。這裏是這些變化的代碼:

<?php 

// Enable error output, source: http://php.net/manual/en/function.error-reporting.php#85096 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$directoryname = "SomeDirectory"; 
$directory = "../" . $directoryname; 

mkdir($directory); 

$file = $directory . "/ActivationFile"; 

touch($file); 
+1

您的解決方案非常完美!我終於明白如何做這樣的事情了,謝謝! –

-2

試試這個:

$dirname = $_POST["DirectoryName"]; 

$filename = "/folder/{$dirname}/"; 


if (file_exists($filename)) { 
    echo "The directory {$dirname} exists"; 
} else { 
    mkdir("folder/{$dirname}", 0777); 
    echo "The directory {$dirname} was successfully created."; 
} 
+1

爲什麼OP要「試試這個」?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –

2

試試這個,這通常應該解決您的問題。
PHP提供了一些功能來操作文件夾&路徑,建議使用它們。
例如要獲取當前的父文件夾,可以使用dirname function

$directoryname = dirname(dirname(__FILE__)) . "/SomeDirectory"; 

if (!is_dir($directoryname)) { 
    mkdir($directoryname); 
} 

$file = "ActivationFile"; 
$handle = fopen($directoryname . '/' . $file, "w"); 
fputs($handle, 'Your data'); 
fclose($handle); 

這條線相當於「../SomeDirectory」

dirname(dirname(__FILE__)) . "/SomeDirectory"; 

所以,當你打開文件,你打開「../SomeDirectory/ActivationFile」

fopen($directoryname . '/' . $file, "w"); 
+1

這解決了我的第二個問題。謝謝您的幫助! –