2011-09-16 326 views
3

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

+0

嗯...... *是*有一个? “最好”是什么意思? “操纵文件系统”是指什么类型的操作系统? –

+0

在性能方面最好,在“最佳实践”方面最好......通过“操纵文件系统”我的意思是做移动,复制,删除文件和文件夹等操作,操作系统可以是Windows或Unix(有一个检查在执行该命令之前执行)。 – teum

+0

啊,够公平的,我有点误读“之间”:) –

回答

3

的PHP版本孤立会比启动更快shell /调用一个进程来执行一些操作。它们也可以跨不同的操作系统移植,并且即使在web服务器无法访问标准shell命令(例如,由于chroot /权限)的情况下也可用。然而,对于特别复杂的操作,然后使用外部命令/过程可能快得多,并且需要显着更少的编程工作,例如,考虑你将如何实现这个在PHP中:

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

好吧,这正是我想听到的。 – teum

1

使用这些函数的优点是您的程序保持独立,即它不会依赖于依赖外部和操作系统的实用程序。

4

我建议原生PHP函数,因为外部命令在许多平台上可能会有所不同。 (例如linux/win)

2

你为什么要用exec?最好的方法是使用本地php函数来操作文件系统。

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

5

功能类似于命令rmdir()每个操作系统上工作,但如果你做一个exec()命令的命令可能会是兼容只有一个OS