有一个php gallery代码,可从图像目录创建画廊。

单击图像时,它具有超链接以显示图像的较大预览。 我需要更改超链接以将其定向到我网站上的其他页面,但是我可以在其中将文件扩展名保留在该文件夹中,例如myimage.png

为了使我的链接正常工作,需要从myimage中删除.png

示例:定义我的链接时,它是这样的:

mysitepage.html?myiframe=myothersitepage.html%3Fmyimage

因此,在代码中,我将链接的这一部分定义为:

**$link_page** = '../mysitepage.html?myiframe=myothersitepage.html%3F';

在图像名称下面的代码中,定义为$ k

所以在原始代码中我更改了这一行:

$imgl .= "< div class=\"img_thumb\" >< a href=\"$k\">

读书:

$imgl .= "< div class=\"img_thumb\" >< a href=\"**$link_page**$k\">

这将返回链接: mysitepage.html?myiframe=myothersitepage.html%3Fmyimage.png

同样,我无法弄清楚如何摆脱该链接中的.png。

请帮忙。

===============>>#1 票数:3 已采纳

在使用扩展名之前,用PHP中的空字符串替换扩展名:

$k = str_ireplace('.png', '', $k);

如果要在客户端执行此操作,请使用jQuery解决方案:

$(function() {
    $('.img_thumb a').each(function() {
        var link = $(this).attr('href').replace(/\.png$/i, '');
        $(this).attr('href', link);
    });
});

如果要替换所有扩展名:

$k = preg_replace('/\.[a-z]+$/i', '', $k);

和jQuery:

$(function() {
    $('.img_thumb a').each(function() {
        var link = $(this).attr('href').replace(/\.[a-z]+$/i, '');
        $(this).attr('href', link);
    });
});

如果您在多个地方(前面没有提到)使用$ k,则还可以内联执行replace:

imgl .= "<div class=\"img_thumb\">
    <a href=\"$link_page".str_ireplace('.png', '', $k)."\">
        <img src=\"gallery.php?thumb=$k\" alt=\"$alt\" title=\"$alt\" />
    </a>
</div>";

===============>>#2 票数:0

而不是使用str_replace()附加$k附加$k并删除'.png'

$imgl .= "< div class=\"img_thumb\" >< a href=\"**$link_page**" . str_replace('.png', '', $k) . "\">";

  ask by Mahogan translate from so

未解决问题?本站智能推荐: