1

我有以下选择,但我不希望它显示.jpg 你们能帮我吗?如果我选择一个名称选项,它必须回显图像文件。

    <?php 

    $images = glob("smoelenboek/*.{jpg}", GLOB_BRACE);
    echo '<select name="image">';
    foreach($images as $image)
    {
    echo '<option>' . basename($image) . '</option>';
    }
    echo '</select>';
    echo '<option>' . basename($image) . '</option>'

    ?>
4

4 回答 4

1

你快到了,使用第二个参数basename()

echo '<option>' . basename($image, '.jpg') . '</option>';

虽然,如果您开始列出具有其他后缀的文件,您将需要重新考虑此方法

于 2013-09-13T10:56:32.203 回答
0

的第二个参数basename允许您切断扩展(如果存在):

echo basename('test.jpg', '.jpg'); // echoes test

请注意,虽然basename接受路径作为第一个参数,但它实际上并不检查文件系统以验证文件,因此可以传递任何字符串。

编辑

对于有关在选择中显示图像本身的附加问题:如在此问题中所见,这在跨浏览器方式中实际上是不可能的。

您可以为此使用自定义组件,例如jQuery Selectable

于 2013-09-13T10:56:19.830 回答
0

试试这个

$images = glob("smoelenboek/*.{jpg}", GLOB_BRACE);
echo '<select name="image">';
foreach($images as $image)
{
echo '<option value="'.basename($image, '.jpg').'">' . basename($image) . '</option>';
}
echo '</select>';
于 2013-09-13T10:57:17.420 回答
0

试试这个

<?php 

        $images = glob("smoelenboek/*.{jpg}", GLOB_BRACE);
        echo '<select name="image">';
        foreach($images as $image)
        {
        echo '<option style="background: url('. $image . ') no-repeat; ">'. basename($image) . '</option>';
        }
        echo '</select>';
       echo '<option style="background: url('. $image . ') no-repeat;">'. basename($image) . '</option>';

        ?>
于 2013-09-13T11:01:46.270 回答