如何在超链接中删除文件扩展名,在这种特定情况下


How to remove file extension in hyperlink, in this specific situation?

有一个php图库代码,从图像目录创建一个图库。

当点击图像时,它有一个超链接来显示图像的更大预览。我有一个需要,我想改变超链接直接到我的网站上的不同页面,我能够,但它保留文件夹中的文件扩展名,例如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在该链接。

请帮。

在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 inline:

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>";

代替$k附加$k,使用str_replace()删除'.png'

$imgl .= "< div class='"img_thumb'" >< a href='"**$link_page**" . str_replace('.png', '', $k) . "'">";
相关文章: