PHP创建和删除目录
可以使用 PHP mkdir 函数创建目录,使用 rmdir 删除目录。
下面的代码创建一个具有 774 权限的目录:
mkdir("/path/to/my/dir", 0774); //Creates the directory
默认情况下,mkdir 将创建具有 777 权限的目录,该目录赋予服务器上所有用户的完全访问权限(读取、写入和执行)。
注意第二个参数中的前导零(chmod 不需要)。
我们可能需要类似 774 的内容,以防止目录过于开放。
此外,在确定完整路径时可以使用 $_SERVER["DOCUMENT_ROOT"] 变量。
要删除目录,只需使用 rmdir:
rmdir('dir'); //Removes a directory
在 PHP 中创建文件和文件夹时,我们应该首先确保 Web 服务器具有所需的权限。
在 Linux 中,对于我们要写入的目录,权限应设置为 774.
在 PHP 中,使用 fopen、fwrite 和 fclose 函数的组合来编写新文件。
但是,我们也可以使用 file_put_contents,它只是 fopen、fwrite 和 fclose 的包装器。
在本教程中,我们将重点介绍第一个提到的功能。
例子:
mkdir("/path/to/my/dir", 0774); //Create Directory rmdir('dir'); //Remove Directory unlink('MyFile.html'); Delete file rename("/folder/old-file-name.ext", "/folder/new-file-name.ext"); //Rename file or directory //Write to file. If it does not exist attempt to create it. $file = fopen($pathtofile, "w"); if((fwrite($file, $content) == false) && (!file_exists($pathtofile))) { fclose($file); echo 'File not written, check permissions!'; } else { fclose($file); echo 'Success!'; }
PHP重命名文件或者目录
重命名文件或者目录是使用重命名功能完成的。
例如,要重命名当前工作目录中的文件——而不将其移动到另一个目录——你应该像下面的例子中演示的那样:
rename("/folder/old-file-name.ext", "/folder/new-file-name.ext");
请记住,重命名功能在工作目录中运行。
上面的示例使用根相对路径来访问、重命名和/或者移动文件。
PHP创建、写入和删除文件
函数名称有点误导,因为它们表明文件需要存在才能写入。
不是这种情况。
但是,它实际上取决于 fopen 的模式参数。
在这个脚本中,我们使用了“w”,因此,如果文件不存在,它将自动创建。
创建文件的脚本如下所示:
$pathtofile = $_SERVER["DOCUMENT_ROOT"] . 'files/'; //Should result in something like: /var/www/MySiteName/files/ $content = 'Blah blah'; $file = fopen($pathtofile, "w"); if((fwrite($file, $content) == false) && (!file_exists($pathtofile))) { fclose($file); echo 'File not written, check permissions!'; } else { fclose($file); echo 'Success!'; }
上面脚本中的 if 检查检查文件创建是否成功。
由于 fwrite 返回值的问题,我们还必须在创建文件后检查文件是否存在。
这是通过 file_exists 函数完成的。
我们需要两个检查,因为如果文件在尝试创建时已经存在,并且由于某种原因失败,我们可能想知道它。
fwrite 的问题在于,如果 $content 为空,它会返回“0”,当使用 if(fwrite(...)) 检查时,它也会验证为 false,并且由于我们可能希望能够创建空文件,因此我们将需要用 file_exists 来解决这个问题。
fwrite 失败可能有其他原因,但很可能是因为运行服务器的用户没有必要的权限。
mode 参数——fopen 函数的“w”参数——用于控制打开文件的模式。
在这种情况下,文件被打开用于写入。
如果文件不存在,它将被创建。
最后,如果它已经存在,它将被覆盖。
我们可以在 fopen 上的 PHP 参考中阅读有关不同模式的更多信息。
最后,fopen 接受的本地文件路径是服务器端的完整路径,而不是相对路径。
我们可以使用 $_SERVER["DOCUMENT_ROOT"] 获取脚本所在目录的完整路径。
删除文件是通过 unlink 完成的:
unlink('MyFile.html');