複数のリンクが含まれるテキストがあります。1つのリンクは次のようになります
<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)を挿入する方法がわかりませんか?