Php图像基本名称

时间:2013-10-14 19:42:21

标签: php image filenames

我是php的新手。我找到了一段代码,可以从文件夹中获取所有图像。这部分有效。但是现在我想在图像下方没有扩展名的情况下回显文件名。我读了一些关于基本名称和路径的内容,但我说得不对......

这有效:

<?php
$files = glob("images/*.*");
for ($i=1; $i<count($files); $i++)
{
$num = $files[$i];
echo '<div class="imgholder"><img src="'.$num.'" class="loadedimg"></div>';
}
?>

我尝试了什么(但没有奏效):

<?php
$path = glob("images/*.*");
$files = glob("images/*.*");
for ($i=1; $i<count($files); $i++)
{
$num = $files[$i];
echo '<div class="imgholder"><img src="'.$num.'" class="loadedimg">';

echo basename($path,".jpg");
echo"</div>";
}
?>

我在网页上收到此错误:basename()要求参数1为字符串,数组在... / imgloader.php中给出

4 个答案:

答案 0 :(得分:0)

如错误所示,您尝试使用数组作为basename()的第一个参数。

你可能想要这个:

echo basename($num, '.jpg");

我建议在代码中使用更多描述性变量名称:

$files = glob("images/*.*");
for ($i=1; $i<count($files); $i++)
{
    $img = $files[$i];
    echo '<div class="imgholder"><img src="'.$img.'" class="loadedimg">';
    echo basename($img,".jpg");
    echo"</div>";
}

但是,我认为最好使用foreach循环。您可以删除count()赋值,并且不需要声明临时变量:

foreach (glob("images/*.*") as $img) {
    echo '<div class="imgholder"><img src="'.$img.'" class="loadedimg">';
    echo basename($img,".jpg");
    echo"</div>";
}

basename()中的第二个参数是可选的,只有在您想要获得.jpg扩展名的图片的尾部组件时才有必要。

答案 1 :(得分:0)

使用foreach循环......

foreach ($path as $p)
    {
    echo basename($p, ".jpg");
    }

您定义为$ path的路径是一系列路径,为清晰起见,可能会更改其名称。

答案 2 :(得分:0)

因为你必须显示当前元素。试试:

basename($files[$i]);

答案 3 :(得分:0)

basename()仍然具有与传递的扩展名不同的扩展名。

foreach(glob("images/*.*") as $file) {
    echo '<div class="imgholder"><img src="'.pathinfo($file, PATHINFO_FILENAME).'" class="loadedimg"></div>';
}

另外,如果你只需要.jpg,那么* .jpg上的glob()。