我最近开始乱用一些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,因此它可能不是问题。 (另外,我知道让我的所有文件完全打开可能不是最好的主意;一旦我正确地工作,我将确保将权限设置为更安全的东西)
知道我做错了吗?
答案 0 :(得分: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
答案 1 :(得分:1)
mkdir函数采用相对于文件系统的根目录的路径,而不是文档根目录。
如果您使用的是* nix系统,您的网站文档根目录可能位于/ var / www / sitename / html等路径中,但您尝试创建/number/number.txt,而您的帐户不会没有权限。将传递给mkdir的路径更改为文件系统中您有权创建文件夹和文件的位置,您的代码应该可以正常工作。
编辑:
你问题中的代码实际上并没有尝试写任何东西。通过调用fopen,您已经创建了一个文件句柄,但是您需要调用fwrite来实际将数据写入文件。正如@JamesSwift所建议的那样,您可能需要查看file_put_contents。
答案 2 :(得分:0)
在这里,试试这个:
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
mkdir("$root/root_website_folder/php/testing_folder", 0777);
PHP使用您的真实路径而非虚拟路径,我们将$ root分配给您机器上的真实路径,而不是添加网站根目录的虚拟路径