5

我最近开始搞乱一些 HTML 和 PHP,并且遇到了一个可能超级容易解决的错误,但我一生都无法修复。

简而言之,我要做的是创建一个目录,然后在该目录中创建一个同名的 .txt 文件,类似于“/number/number.txt”。虽然创建文件或创建目录似乎很简单,但我在尝试同时做这两种操作时遇到了无穷无尽的麻烦。

这是我的代码:

mkdir($postnum, 0777);
chmod($postnum, 0777);

$post = "/" . $postnum . "/" . $postnum . ".txt";
$post = boards(__FILE__) . $post;

$po = fopen($post, 'w+') or die("Can't open file");
chmod($post, 0777);

我在写这篇文章时遇到了一些问题,我读到使用 mkdir 我可以设置我创建的目录的权限,但是尽管做了我认为正确的做法,但它没有做任何事情。所以我之后立即运行 chmod 。

然后,我希望只有 /$postnum/$postnum.txt 可以打开目录,但是当我尝试这样做时,我得到了模具文本,我必须添加“板(文件)部分才能得到它工作。(旁注,“板”是我正在工作的目录)

即使那样,虽然它没有给我“无法打开文件”,但它没有创建文件或任何东西。

我已经确定任何文件或文件夹甚至与文件进行远程交互都已将其权限设置为 0777,因此这可能不是问题。(另外,我知道像这样完全打开我的所有文件可能不是最好的主意;一旦我让它正常工作,我一定会把权限设置为更安全的东西)

知道我做错了什么吗?

4

3 回答 3

2
making directory and creating path:-

$new_folder=mkdir('uploads\\'.$folder_name, 0777, true);

('uploads\\'.$folder_name)->path where you create folder like www->upload->folder name(whatever you provide)

$path="uploads\\".$folder_name."\\";//if you want to provide path you can provide this way
于 2012-10-23T05:33:15.487 回答
1

mkdir 函数采用相对于文件系统根目录的路径而不是文档根目录。

如果您在 *nix 系统上,您的网站文档根目录可能位于 /var/www/sitename/html 等路径中,但您正在尝试创建您的帐户没有的 /number/number.txt权限做。将您传递给 mkdir 的路径更改为文件系统中您有权创建文件夹和文件的某个位置,并且您的代码应该可以工作。

编辑:

您问题中的代码实际上并未尝试编写任何内容。通过调用 fopen 您已经创建了一个文件句柄,但是您需要调用fwrite才能将数据实际写入文件。正如@JamesSwift 所建议的,您可能想看看file_put_contents

于 2012-10-23T05:46:54.957 回答
0

在这里,试试这个:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);
mkdir("$root/root_website_folder/php/testing_folder", 0777);

PHP 使用您的真实路径而不是虚拟路径,我们将您机器上的真实路径分配给 $root,而不是添加您网站根目录的虚拟路径

于 2017-09-17T12:25:33.517 回答