【问题标题】:Problems with GlobGlob 的问题
【发布时间】:2017-12-26 20:12:11
【问题描述】:

我正在使用 Glob 来获取目录中文件的名称。目录中始终只有 1 个文件。

但是我有一个 CMS,所以我的路径有时会不同,我不能使用我的 BASE_URL 或完整网址,因为后来我收到了这个通知:

注意:未定义的偏移量:0。

我正在使用此代码:

$files = glob('<?php echo BASE_URL?>images/logo/*.{jpg,gif,png}', GLOB_BRACE); 
print_r($files[0])

当我离开 &lt;?php echo BASE_URL?&gt; 时,它在主页 url 上运行良好。

有解决方法或知道其他方法的人?

【问题讨论】:

  • 你的错误意味着你的数组是空的,你应该使用printr_($files)而不是print_r($files[0])。如果glob() 函数什么也没找到,它将显示完整的数组和一个空数组。
  • 您不能在 URL 上使用glob(),它必须是文件系统访问权限。

标签: php glob opendir


【解决方案1】:

您需要更直接地使用 BASE_URL,您的文本实际上将包含 &lt;?php echo BASE_URL?&gt; 作为字符串的一部分。

$files = glob(BASE_URL.'images/logo/*.{jpg,gif,png}', GLOB_BRACE);

但您可能想改用ROOT_PATH,这将是服务器上的文件路径。或者类似的东西

 $files = glob($_SERVER['DOCUMENT_ROOT'].'/images/logo/*.{jpg,gif,png}', GLOB_BRACE);

【讨论】:

  • 还是通知;注意:未定义的偏移量:0。如何使用 ROOT_PATH?
  • @Danny 如果 ROOT_PATH 是您的 CMS 所说的安装的 Web 根目录,那么这就是您想要的……只需将其替换为 BASE_URL。然后从那里对路径进行任何修改。
  • 还有 $files = glob(ROOT_PATH.'images/logo/*.{jpg,gif,png}', GLOB_BRACE);当我定义 ROOT_PATH 时不起作用。也许是因为我在本地主机上?
  • 我使用“DOCUMENT_ROOT”添加了一个替代版本 - 请注意,图像目录前有一个“/”。
  • 你在使用什么 CMS @Danny?
猜你喜欢
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多