htaccess重写后无法scandir()正确的目录

时间:2013-12-06 06:10:46

标签: php .htaccess directory scandir

在/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
我清楚了吗?有什么问题?

提前致谢!

1 个答案:

答案 0 :(得分:0)

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).'"/>';