代码之家  ›  专栏  ›  技术社区  ›  Charles Krug

Php图像基础名称

  •  0
  • Charles Krug  · 技术社区  · 12 年前

    我是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 回复  |  直到 12 年前
        1
  •  0
  •   Amal Murali    12 年前

    正如错误所示,您正试图使用数组作为 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>";
    }
    

    中的第二个参数 基本名称() 是可选的,只有当您想获得带有 .jpg 扩大

        2
  •  0
  •   Gavin    12 年前

    使用foreach循环。。。

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

    您定义的$path是一个路径数组,为了清晰起见,可以更改其名称。

        3
  •  0
  •   Carlos    12 年前

    这是因为您必须显示当前元素。尝试:

    basename($files[$i]);
    
        4
  •  0
  •   AbraCadaver    12 年前

    如果与传递的扩展名不同,那么basename()仍然具有扩展名。

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

    此外,如果你只想要jpg,那么在*.jpg上使用glob()。

    推荐文章