尝试制作图像库


Trying to make an image gallery

所以,我正在尝试通过让它在图像描述下显示下一个/上一个链接来改进我在网站上使用 PHP 使用的图片库,但我不确定如何让页面知道图像列表中的下一步是什么。我目前将我的图像页面存储在这样的数组中:

$icoFanSprites = array(
    "Dust",
    "Glados",
    "Mario",
    "Megaman",
    "PortalTurret",
    "PortalCubes"
);

这是将链接放在图像列表页面上一行的代码:

function generateIcons($items, $prefix){
    foreach($items as $it){
        echo "<a href='"" . $prefix . $it . ".php'"><img class='"sprite'" src='"img/ico" . $it . ".png'" /></a>";
    };
};

它的工作原理是获取角色名称并将其放入链接中,并将"ico"添加到图标中,$prefix添加到实际的图像页面名称中(因为我使用"spr"表示精灵,"dd"表示数字绘图等(。

我的问题出现在导航部分。我不知道如何让 PHP 知道用户当前在页面数组中的位置。我想过使用一个cookie,根据他们点击的位置记住他们在哪里,但后来我想,如果他们禁用了cookie会发生什么?我还能如何在页面之间传输数据?

在我的Squirrel教程中,我只是直接将该数字放入导航生成器中,但那是因为我使用的是简单的编号列表。我的图片库分为个人物品、粉丝艺术和委托艺术,我的公共资产也分为类型。每种类型都有多个数组,这样generateIcons()就不会在同一行上放置错误数量的图像。然而,导航数组是使用 array_merge() 将所有部分合并到一个数组中,所以我并不总是知道图像将在合并的数组上的位置,即使我这样做了,这实际上意味着每次添加图像时我都要做更多的编辑。

我在这里完全不知所措。每当我想到某件事时,我也会想到为什么它不起作用。

我的网站 http://www.kelvinshadewing.net,如果有人想看看它目前的样子。

通常更容易用

索引来做这些想法,并将索引存储在页面或 url 中,但是......

您可以执行array_search(),然后检查是否存在上一个和下一个键。

$icoFanSprites = array(
    "Dust",
    "Glados",
    "Mario",
    "Megaman",
    "PortalTurret",
    "PortalCubes"
);
$current = 'Mario'; // Or wherever you would get this from.
$previous = null;
$next = null;
$index = array_search($current, $icoFanSprites);
if($index === false) { // Exactly equal, as value could be 0
    // Handle the case where the sprite isn't in the list
}
if(array_key_exists($index - 1, $icoFanSprites) {
    $previous = $icoFanSprites[$index - 1];
}
if(array_key_exists($index + 1, $icoFanSprites) {
    $next = $icoFanSprites[$index + 1];
}

或者,您可以制作类似 http://www.kelvinshadewing.net/sprite.php 页面的内容。然后使用 url 参数跟踪要显示的信息。例如:

sprite.php          // <- index (eg this: http://www.kelvinshadewing.net/artPixel.php)
sprite.php?sprite=1 // <- Dust
sprite.php?sprite=2 // <- Glados
etc

url 中 sprite 的值可以从$_GET全局数组访问,即:$_GET['sprite'] 。如果您希望 url 值的信息量更大一些,则可以将其与上面的代码结合使用,以便您可以从以下位置计算出索引: sprite.php?sprite=Mario