在glob函数路径中使用变量

时间:2014-02-24 05:23:49

标签: php glob

如PHP手册中所述

  

图案

     

模式。没有波浪扩展或参数替换。

我试图在变量中找到带路径名的文件但它不起作用。

加载程序文件(程序中的主要功能)需要包含几个文件,这些文件位于加载程序文件正在处理的当前类文件的同一目录中。 所以,我尝试了下面的 loader 文件。

$cwd = getcwd();
$reflector = new ReflectionClass($class_name); //$class_name  come from $_GET
$fname = $reflector->getFileName();
$fdir = dirname($fname);
chdir ($fdir);
$include_file_name = glob("*.inc");
chdir ($cwd);

它有效但只是想知道它是一个好的工作还是我还能做的其他事情。

1 个答案:

答案 0 :(得分:2)

如果您将所有类都放在一个目录中,则可以相对于当前脚本对其进行硬编码,这样就不需要反射类了。例如,如果当前脚本位于/var/www/foo且类位于/var/www/classes,则只需执行以下操作:

$include_file_name = glob(__DIR__ . '/../classes' . '*.inc');

但是如果这些类可以来自多个目录,那么使用这样的反射器对我来说似乎非常合适,但是你也可以将$fdir添加到glob()字符串而不是chdir()像这样,但当然这只是微观优化:

$include_file_name = glob($fdir ."/*.inc");