我在下面有一张表格,其中列出了每个问题的每张图片。
<table id="tableqanda" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th width="5%" class="questionno">Question No.</th>
<th width="11%" class="image">Image</th>
</tr>
</thead>
</table>
<div id="tableqanda_onthefly_container">
<table id="tableqanda_onthefly" cellpadding="0" cellspacing="0">
<tbody>
<?php
foreach ($arrQuestionId as $key=>$question) {
echo '<tr class="tableqandarow">'.PHP_EOL
echo '<td width="5%" class="questionno">'.htmlspecialchars($arrQuestionNo[$key]).'</td>' . PHP_EOL;
echo '<td width="11%" class="imagetd">';
if (empty($arrImageFile[$key])) {
echo ' ';
} else {
echo '<ul class="qandaul"><li>';
echo implode("</li>\n<li>", array_map(function($imgitem){
return htmlspecialchars($imgitem);
}, $arrImageFile[$key]));
echo '</li></ul>';
}
echo '</td>';
echo '</tr>'.PHP_EOL;
}
?>
</tbody>
</table>
</div>
现在它只是在项目符号列表中列出图像文件名。但我想要做的是,我想将每个文件设置为超链接,以便如果用户点击图像链接,它将在单独的页面中显示该图像(将打开一个单独的窗口),显示图像本身< / p>
我的问题是如何做到这一点,我需要做以下哪些步骤?如果有人可以告诉我如何逐步编码,那么我也可以将它用于音频和视频。
由于
答案 0 :(得分:1)
好的,我一直在考虑你想做什么,我想你想要以缩略图或其他形式显示图像列表,然后点击图像并在新页面上显示它(在你的布局中)( previewimage.php)。
你有很多选择...但它们都归结为通过URL传递一些信息(example.com/previewimage.php)。
首先,我们来看一下通过URL传递信息的两种典型方法
$ _获取请求
有时您会看到网站向网址传递添加信息,例如
example.com/previewimage.php?var=xxx
这允许您通过$ _GET超全局将一些信息传递给PHP脚本。
<强>的.htaccess 强>
如果您想获得一些想象力,可以使用htaccess创建一个干净的URL
RewriteRule ^([a-zA-Z0-9]+)/$ previewimage.php?var=$1
这将允许您拥有类似example.com/xxx的URL,服务器将像您访问example.com/previewimage.php?var=xxx一样。
现在你知道如何将信息传递给网址,我们可以研究一些使用$ _GET ['var']来显示图像的方法。
最简单的方法是简单地传递文件的名称......对于这个例子,我们称之为example.png。
如果您使用上面的基本$ _GET请求方法,您将拥有一个像example.com/previewimage.php?var=example.png这样的网址。
然后,在previewimage.php中,您只需执行类似
的操作<img src="<?php echo $_GET['var'] ?>"/>
这将输出
<img src="example.png"/>
然而,这不是一种非常安全的方法,因为任何人都可以加载他们想要的任何东西。一个更好的选择可能是使用数组或数据库,然后传递某种键并检索文件名。
我认为这会让你走上正确的道路(我希望它能回答你的问题)。
答案 1 :(得分:0)
假设这个问题是如何在新标签中打开链接。 环绕你喜欢的任何地方,在这种情况下成像,用这个。
<a href="/linktoimage.png" target="_blank"><img src="/linktoimage.png" alt="my image"></a>
答案 2 :(得分:0)
以下是如何完成此操作的示例。刚编辑内部的“If else”循环
将YOUR_BASE_URL_FOR_IMAGES_HERE_ENDING_WITH_A_DASH替换为服务器上图像的目录路径。
if (empty($arrImageFile[$key])) {
echo ' ';
} else {
echo '<ul class="qandaul"><li>';
echo implode("</li>\n<li>", array_map(function($imgitem) {
return '<a href="YOUR_BASE_URL_FOR_IMAGES_HERE_ENDING_WITH_A_DASH' . htmlspecialchars($imgitem) . '" target="_blank">' . htmlspecialchars($imgitem) . '</a>';
}, $arrImageFile[$key]));
echo '</li></ul>';
}