fopen() php 函数有问题
Having an issue with the fopen() php function
我有一个 users
目录和一个 login/register 系统的子目录。我有一个文件 testing.php
,试图找出如何在 users
目录中创建一个目录并在同一目录中创建一个 PHP 文件。这是我的代码:
<?php
$directoryname = "SomeDirectory";
$directory = "../" . $directoryname;
mkdir($directory);
$file = "../" . "ActivationFile";
fopen("$file", "w");
?>
我可以让 mdkir($directory)
工作,但 fopen("$file", "w")
不行。
试试这个:
$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.";
}
试试这个,这通常可以解决您的问题。
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");
您可以使用函数 touch()
创建文件:
If the file does not exist, it will be created.
您在指定文件路径时也忘记重新使用$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);
我有一个 users
目录和一个 login/register 系统的子目录。我有一个文件 testing.php
,试图找出如何在 users
目录中创建一个目录并在同一目录中创建一个 PHP 文件。这是我的代码:
<?php
$directoryname = "SomeDirectory";
$directory = "../" . $directoryname;
mkdir($directory);
$file = "../" . "ActivationFile";
fopen("$file", "w");
?>
我可以让 mdkir($directory)
工作,但 fopen("$file", "w")
不行。
试试这个:
$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.";
}
试试这个,这通常可以解决您的问题。
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");
您可以使用函数 touch()
创建文件:
If the file does not exist, it will be created.
您在指定文件路径时也忘记重新使用$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);