所以,我正在尝试通过让它在图像描述下显示下一个/上一个链接来改进我在网站上使用 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