我是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中给出
答案 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()。