PHP中的通配符复制文件

Blu*_*kMN 0 php linux bash command-line

我想在PHP脚本中执行以下bash(shell)命令的等效命令:

cp --parents -t ../../htdocs/host/$2/ *.html *.js *.png *.ogg *.mp3 Sprites/*.js
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用PHP system()命令时,它无法正常工作,大概是因为cp是shell的一部分,而不是一个独立的可执行文件.我不认为PHP copy()函数支持通配符,或者如果它支持通配符,它​​肯定不支持我指定的命令行开关.什么是在PHP中执行此操作的最简单,最好的方法.我可以创建一个shell脚本并在其上调用system(),但这看起来很糟糕.

编辑:评论正确; 我相信我有一个许可问题.为什么我对mkdir("blahblah/htdocs/host/$ REV",775)的调用没有设置所有者和组可写权限?

alg*_*net 8

PHP有一个glob()接受通配符的函数.它不像shell行那么简单,但你可以这样做:

foreach (glob("*.html") as $htmlFile) {
    copy($htmlFile, $targetDir);
}
Run Code Online (Sandbox Code Playgroud)