【问题标题】:Download link over random php image通过随机 php 图像下载链接
【发布时间】:2019-04-26 10:59:51
【问题描述】:

我正在显示一个文件夹中的一些随机图像,但是我对 PHP(代码来自互联网)不是很好,我将如何在图像顶部显示“下载”链接?

使用 PHP 显示文件夹中的随机图像:

function random_image($directory)
{
$leading = substr($directory, 0, 1);
$trailing = substr($directory, -1, 1);

if($leading == '/')
{
    $directory = substr($directory, 1);
}
if($trailing != '/')
{
    $directory = $directory . '/';
}

if(empty($directory) or !is_dir($directory))
{
    die('Directory: ' . $directory . ' not found.');
}

$files = scandir($directory, 1);

$make_array = array();

foreach($files AS $id => $file)
{
    $info = pathinfo($dir . $file);

    $image_extensions = array('jpg', 'jpeg', 'gif', 'png', 'ico');
    if(!in_array($info['extension'], $image_extensions))
    {
        unset($file);
    }
    else
    {
        $file = str_replace(' ', '%20', $file);
        $temp = array($id => $file);
        array_push($make_array, $temp);
    }
}

if(sizeof($make_array) == 0)
{
    die('No images in ' . $directory . ' Directory');
}

$total = count($make_array) - 1;

$random_image = rand(0, $total);
return $directory . $make_array[$random_image][$random_image];

}

标记:

echo "<img src=" . random_image('css/images/avatars') . " />";

我已经尝试在谷歌周围寻找答案,但我找不到任何东西,任何帮助将不胜感激

【问题讨论】:

  • 您只需使用与图像相同的 URL 创建一个链接。比如,&lt;a&gt; 而不是 &lt;img&gt;

标签: php html image random


【解决方案1】:

您可以使用简单的 javascript 来执行此操作,例如 onclick 事件:

只需将此添加到 img 标签onclick='window.open('". random_image('css/images/avatars') ."')'

echo "<img onclick='window.open('". random_image('css/images/avatars') ."')' src='" . random_image('css/images/avatars') . "' />";

【讨论】:

    【解决方案2】:

    您应该将图像位置保存在一个变量中,然后使用它来创建一个链接,并显示它。

    $imageUrl = random_image('css/images/avatars');
    echo "<a href=" . $imageUrl . ">";
    echo "<img src=" . $imageUrl . " />";
    echo "</a>";
    

    或者如果你想显示上面的文本链接,单独然后

    $imageUrl = random_image('css/images/avatars');
    echo "<a href=" . $imageUrl . ">Click Here</a><br />";
    echo "<img src=" . $imageUrl . " />";
    

    【讨论】:

    • 太棒了,你的第二个例子正是我要找的,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多