【问题标题】:Cannot scandir() correct directory after htaccess rewritehtaccess重写后无法scandir()正确的目录
【发布时间】:2013-12-06 06:10:45
【问题描述】:

在 /portfolio.php(位于站点的根目录)上,我想显示 /trabajos/tataviajes 目录中的所有图像。

foreach(scandir('./trabajos/tataviajes/', 1) as $filename){
     echo '<img src="'.$filename.'"/>';
 }

该函数像这样打开图像:/portfolio/123.jpg 而不是 /trabajos/tataviajes/123.jpg

我认为它可能会干扰的 htaccess 代码是:

RewriteRule ^portfolio/(\w+)/?$ portfolio.php?i=$1

我说清楚了吗?有什么问题?

提前致谢!

【问题讨论】:

    标签: php .htaccess directory scandir


    【解决方案1】:

    scandir 返回一个 文件名 数组而不是文件路径 请参阅http://php.net/scandir#refsect1-function.scandir-returnvalues

    您需要在文件名的路径前加上前缀。考虑类似的事情:

    $directory = 'trabajos/tataviajes/';
    foreach(scandir($directory, 1) as $filename){
        echo '<img src="/'.$directory.$filename.'"/>';
    }
    

    另外,consider using htmlentities 所以路径中的特殊字符不会弄乱您的标记:

    echo '<img src="'.htmlentities('/'.$directory.$filename).'"/>';
    

    【讨论】:

    • @GuillermoDelicia 没问题!此外,使用var_dump 查看 var 变量内容和对象结构,例如var_dump($filename)var_dump(scandir('./trabajos/tataviajes/',1)) 应该可以帮助您在未来诊断问题;)
    猜你喜欢
    • 2011-01-02
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多