【发布时间】:2011-11-06 00:39:40
【问题描述】:
我写了一个迷你函数来包含目录中的所有php文件
foreach (glob("*.php") as $filename)
{
include $filename;
}
如何在当前目录中包含除文件本身之外的所有文件(位于哪个函数中)?
【问题讨论】:
我写了一个迷你函数来包含目录中的所有php文件
foreach (glob("*.php") as $filename)
{
include $filename;
}
如何在当前目录中包含除文件本身之外的所有文件(位于哪个函数中)?
【问题讨论】:
以下内容应该会有所帮助。您应该只获取当前脚本文件名并与数组中的项目进行比较:
$this_file = basename($_SERVER['SCRIPT_FILENAME']);
foreach (glob("*.php") as $filename)
{
if ($filename !== $this_file) {
include $filename;
}
}
更多细节:
【讨论】:
foreach (glob("*.php") as $filename) {
if (realpath($filename) !== __FILE__) include $filename;
}
或许
foreach (array_diff(array_map('realpath',glob("*.php")), array(__FILE__) as $filename) {
include $filename;
}
【讨论】:
$filename 将是例如。 “main.php”,但__FILE__ 可能是“/main.php”,然后比较会失败。
glob() 的结果包含绝对路径,但事实并非如此。第二种解决方案“不再那么好”了,但它应该可以工作