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

时间:2013-04-16 03:38:15

标签: php html

有一个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。

请帮忙。

2 个答案:

答案 0 :(得分: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(之前没有提到),你也可以执行内联替换:

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

答案 1 :(得分:0)

使用$k

删除附加$k附加str_replace()并附加'.png'而非附加{p>}
$imgl .= "< div class=\"img_thumb\" >< a href=\"**$link_page**" . str_replace('.png', '', $k) . "\">";