【问题标题】:php glob function returns nothingphp glob 函数不返回任何内容
【发布时间】:2015-07-29 12:21:38
【问题描述】:

您好 Stackoverflow 大师, 我有 glob 函数 php 的问题。

$gallery_full = glob("/var/www/home.com/uplo_1/*.*",GLOB_NOSORT);
print_r($gallery_full);

这几行没有给我任何回报。所有目录都有 chmod 777。在 uplo_1 中有 jpg 和 png 文件。 有人知道怎么运行吗?

【问题讨论】:

  • 试试uplo_1/* 而不是uplo_1/*.*
  • 见过带有文件/(dir) 扩展名的目录吗?
  • @Fred-ii- 还是一样
  • www 下是否有名为home.com 的文件夹??

标签: php


【解决方案1】:

编辑:用我自己的系统路径测试您发布的代码后,没有问题。

  • 检查以确保您的系统路径正确。

  • 在文件中使用phpinfo();,查看Environment,然后查看DOCUMENT_ROOT

    • 如果您没有使用 phpinfo() 的访问权限/特权,请登录您的管理面板,和/或联系您的托管服务提供商以获取您的系统路径。
  • 使用错误报告http://php.net/manual/en/function.error-reporting.php

“所有目录都有 chmod 777”

  • 这不是最安全的设置。文件夹使用 755,文件使用 644。

编辑前的原始答案:

这是我使用的,如果您的文件夹碰巧包含图像以外的文件会更好。

  • 旁注:文件夹最好有索引文件,否则有人可能会找到该文件夹​​并偷看里面的内容,如果你没有注意的话。

确保路径正确。

$imagesDir = '/path/to/files';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE | GLOB_NOSORT);

error reporting 添加到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:显示错误应该只在暂存阶段完成,而不是在生产阶段。

参考:

【讨论】:

    【解决方案2】:

    当我使用glob 时,我会先添加 DOCUMENT_ROOT,如下所示:

    $fileCount = $_SERVER['DOCUMENT_ROOT'] . '/path/to/file.ext';
    echo $fileCount;  
    

    这应该可行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2016-09-16
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 2020-02-22
      相关资源
      最近更新 更多