Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 操纵文件系统_Php_Filesystems - Fatal编程技术网

Php 操纵文件系统

Php 操纵文件系统,php,filesystems,Php,Filesystems,在操作文件系统时,使用exec()和PHP函数(如rmdir(),unlink()等)之间的最佳方法是什么?使用函数的优点是程序保持自包含,ie不会依赖于外部和依赖于操作系统的实用程序。我建议使用本机PHP函数,因为在许多平台上,外部命令可能不同。(例如linux/win)为什么要使用exec?最好是使用本机php函数来操作文件系统 只有当您需要更复杂的操作时,才可以尝试执行命令。但是在这种情况下,也许bash或python脚本可以完成这项工作,并且只使用exec调用该脚本来完成这项工作。像rm

在操作文件系统时,使用
exec()
和PHP函数(如
rmdir()
unlink()
等)之间的最佳方法是什么?

使用函数的优点是程序保持自包含,ie不会依赖于外部和依赖于操作系统的实用程序。

我建议使用本机PHP函数,因为在许多平台上,外部命令可能不同。(例如linux/win)

为什么要使用exec?最好是使用本机php函数来操作文件系统

只有当您需要更复杂的操作时,才可以尝试执行命令。但是在这种情况下,也许bash或python脚本可以完成这项工作,并且只使用exec调用该脚本来完成这项工作。

像rmdir()这样的函数在每个操作系统上都可以工作,但如果执行exec()的话命令您的命令可能只与一个操作系统兼容。与启动shell/调用进程来执行某些操作相比,单独使用PHP版本要快得多。它们还可以跨不同的操作系统进行移植,即使Web服务器无法访问标准shell命令(例如,由于chroot/权限),它们也可以使用

然而,对于特别复杂的操作,则使用外部命令/进程可能要快得多,并且需要少得多的编程工作,例如考虑如何在PHP:< /P>中实现这一点。

find /some/path -iname \*.files -exec grep '*.tgz' | \
    xargs tar -tvzf | grep targetfile

嗯。。。有吗?你说的“最好”是什么意思?你说的“操纵文件系统”到底是什么意思?在性能方面最好,在“最佳实践”方面最好……所谓“操纵文件系统”,我指的是移动、复制、删除文件和文件夹等操作,操作系统是Windows或Unix(在执行命令之前要进行检查)。啊,公平地说,我有点误读了“中间人”: