2010-03-02 24 views
0

我試圖讓一個工作正則表達式標準的HTML代碼轉換成自定義格式(需要導出數據)。PHP:轉換在自定義標籤鏈接與正則表達式

對於下面的代碼中爲例:

<a href="toto.php">Toto 
</a> bwahaha 
<td width="49%" bgcolor="#FF9E39" style="padding-left: 10px; padding-top: 3px; padding-bottom: 3px; border-bottom: 5px solid rgb(255, 255, 255);" class="texteblanc"> 
<a href="nuit-orientation.php" class="texteblanc">[strong]Nuit de l'orientation[/strong]</a> 
</td> 

我想提取的格式如下兩個鏈接:

[a:toto.php]Toto[/a] 
[a:nuit-orientation.php][strong]Nuit de l'orientation[/strong][/a] 

當然,我希望它能及時到位的鏈接在現有的HTML代碼中。

所以,我tryed下面的代碼:

$txt = preg_replace('/<a href="(([[:word:]]|[[:punct:]])+)"[^>]*>\n*(\r\n)*\r*(([[:print:]]|\r\n|\n)+)\n*(\r\n)*\r*<\/a>/i', '[a:${1}]${4}[/a]', $txt); 

它的工作原理,但不是所有的時間...

是否有人對如何做這樣的事情什麼想法?

感謝,

達明

回答

2
+0

如果使用DOM,你可以得到所有屬性HREF 「嗒嗒」 很容易的要素=。 – matpol 2010-03-02 14:22:31

+0

我需要靜態文本從PHP頁面導出: - 「設計」是由表 的 - 我需要出口從幾個設計DATAS不相同的佈局 - 所有需要的數據都是直接寫在PHP 內因此:我用我在帖子中顯示的語法來替換所有想保留的標記,並使用strip_tags()刪除所有其他標記。 所有這一切的目標是使靜態頁面的XML導出將它們導入到一個CMS(EZ發佈)。 我tryed加載頁面到一個DOMDocument但我西港島線不能夠找到的數據都是除了有很多例外的地方...... – 2010-03-02 14:25:08

+0

@MARTIN不管究竟使用何種HTML操縱系統(DOM,SimpleXML的,SimpleHTMLDOM,等等),其中的任何一個仍然會比通過正則表達式解決這個問題更好*解決方案?爲什麼?你*不能* - HTML **不是常規語言。 – 2010-03-02 14:43:13