我正在制作一个包含一些Flash游戏的页面,但是,由于过去会有很多游戏,所以在网站上逐一添加所有这些游戏将会非常无聊。我知道使用PHP我们可以获取目录中的文件列表,我知道,使用这种方法,我可以将目录中的所有游戏显示给访问者页面但是,我在想是否可以帮助我添加每个游戏的图像,与游戏名称相对应。例如:
在“games”文件夹中我们将有游戏:play1.swf,play2.swf,play3.swf 并且,在“images”目录中,我们将有图像:play1.jpg,play2.jpg,play3.jpg。
要显示游戏列表,我们可以将jpg文件与swf文件组合在一起吗? Play1.jpg将是play1.swf游戏的图像,当访问者点击图像时,将重定向到名为ex:playgames.php?play1
的页面答案 0 :(得分:0)
假设这个目录结构:
/foo/images
game1.jpg
game2.jpg
/foo/games
game1.swf
game2.swf
这样的事情:
<?php
$dir = "/foo";
$files = new DirectoryIterator($dir . DIRECTORY_SEPARATOR . 'games');
$games = array();
foreach($files as $file){
if (!$file->isDot()) {
$potential_image_location = $file->getPath() . '/../images/' . $file->getBasename('.swf') . '.jpg';
if (file_exists($potential_image_location)) {
$games[$file->getBaseName()] = array(
'game_path' => $file->getPathname(),
'image_path' => realpath($potential_image_location),
);
}
}
}
if (!count($games)) {
die("Sorry, couldn't find any game / image combos");
}
?>
<table>
<?php
foreach ($games as $game_name => $info) {
echo '<tr><td><img src="' . htmlentities($info['image_path']) . '" alt="' . htmlentities($game_name) . '"></td>' . PHP_EOL;
echo '<td>' . $info['game_path'] . '</td></tr>';
}
?>
</table>
答案 1 :(得分:-1)
关于以聪明的方式使用opendir
的全部内容,以及其中的文档http://php.net/manual/en/function.opendir.php