fopen()php函数出现问题



我有一个users目录和一个用于登录/注册系统的子目录。我有一个文件testing.php,试图弄清楚如何在users目录中创建一个目录,并在同一目录中创建PHP文件。这是我的代码:

<?php
$directoryname = "SomeDirectory";
$directory = "../" . $directoryname;
mkdir($directory);
$file = "../" . "ActivationFile";
fopen("$file", "w");
?>

我可以让mdkir($directory)工作,但不能让fopen("$file", "w")工作。

试试这个,这通常会解决你的问题
PHP提供了一些操作文件夹的功能;路径,建议使用它们
例如,要获取当前的父文件夹,可以使用dirname函数。

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

您可以使用函数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);

试试这个:

$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.";  
}  

最新更新