【问题标题】:Can't get my helper to return results无法让我的助手返回结果
【发布时间】:2012-03-30 20:49:22
【问题描述】:

所以我想我会编写我的第一个 codeigniter 助手(对 codeigniter 来说还是个新手)。我需要一些可以从照片目录返回文件名数组的东西,以便为它们建立超链接。这样我就不必自己写出每个文件名,并且向目录中添加新照片会动态更新网站。

所以我创建了一个名为photo_helper.php 的新助手,它看起来像这样:

<?php 

    function spit_out_images($path)
    {
        $aryPhotos = get_filenames($path);

        //does parsing to create hyperlinks

        return $aryPhotos;
    }

我将filephoto 助手设置为在我的autoload.php 中自动加载

然后在我看来,我像这样调用了辅助函数spit_out_images

<?php
      $photoPath = base_url().'assets/_images/TwentyYears/thumbs';
      echo spit_out_images($photoPath);

?>

但我从来没有得到任何结果。我什至尝试回显$photoPath 变量,以确保它正确地给出了路径。

我确定这很简单,我只是想不通。

谢谢!

【问题讨论】:

  • get_filenames() 是否返回任何内容? var_dump(spit_out_images($photoPath)); 输出什么?
  • 你的助手是否包含递归函数?
  • var_dump() 返回 bool(false) 但我不确定这意味着什么。我尝试只使用get_filesnames($photoPath),但它没有返回任何内容。不过目录里有照片。
  • @drpcken:问题显然出在get_filenames() 函数上。
  • @drpcken:来自手册(php.net/manual/en/function.opendir.php):如果路径不是有效目录或由于权限限制或文件系统错误而无法打开目录,opendir() 返回 FALSE并生成 E_WARNING 级别的 PHP 错误。您可以通过在函数名称前面添加“@”来抑制 opendir() 的错误输出

标签: php codeigniter


【解决方案1】:

确保base_url() . 'assets/_images/TwentyYears/thumbs' 具有Apache/PHP 执行和读取目录和文件的正确权限,0755 应该是合适的模式。

【讨论】:

  • 当我删除 base_url() 时它起作用了。它返回了数组。我应该更改权限还是只使用前面没有baseurl 的直接路径?
  • @drpcken:我的错,我什至没有注意到你打电话给base_url()get_filenames() 是一个文件系统函数,它与 HTTP 协议和 URL 无关,所以放弃它。您不需要更改权限。
  • 我觉得你应该为我指明正确的方向得到答案 :)
【解决方案2】:

很可能您没有该目录的读取权限。您可以使用 filezilla 检查目录权限,但要更改您需要 ssh 访问权限。

【讨论】:

    猜你喜欢
    • 2014-09-18
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多