我有一个包含多个链接的文本。一个链接看起来像
<a href="http://www.mydomain.com/files/test1.pdf" target="_blank">My link</a>
首先,我想将div
标签包裹在所有href
标签上,但href
前提是以http://www.mydomain.com/files/
. 所以上面的链接(因为它以那个前缀开头)应该变成
<div class="myLink">
<a href="http://www.mydomain.com/files/test1.pdf" target="_blank">My link</a>
</div>
然后根据文件扩展名( 的结尾字符href
)在链接之前添加图像,使其变为
<div class="myLink">
<img src="pdf_file_icon.png" alt="File type icon" />
<a href="http://www.mydomain.com/files/test1.pdf" target="_blank">My link</a>
</div>
并且可以选择在链接之后添加一些我的文本,以便最终版本变为
<div class="myLink">
<img src="pdf_file_icon.png" alt="File type icon" />
<a href="http://www.mydomain.com/files/test1.pdf" target="_blank">My link</a>
<span class="fileSize">1.3 Mb</span>
</div>
我需要PHP和JavaScript/jQuery的解决方案 (我认为 jQuery 因为它的选择器功能而更容易?)。
我想要得到的是从常规文本链接移动到这样的东西(不要打扰文件大小,它是预先计算好的,所以它就像任何其他常规/虚拟文本一样)
编辑#1
这是我在PHP中的尝试
$regexp = "<a\s[^>]*href=(\"??)(http:\/\/www\.mydomain\.com\/files\/[^\" >]*?)\\1[^>]*>(.*)<\/a>";
$text = preg_replace("/$regexp/siU", "<div class=\"fileAttachment\"><img src=\"pdf_file_icon.png\" alt=\"File type icon\" /><a href=\"$2\" target=\"_blank\">$3</a></div>", $text);
但我不确定如何立即检查文件扩展名并根据它插入适当的图像(pdf_file_icon.png)?