我在我的應用程序中有自定義html標記,它看起來像這樣:<wiki href="articletitle">Text</wiki>
並且希望它被替換爲像這樣:<a href="http://myapps/page/articletitle">Text</a>
。我如何在PHP中做到這一點?取代php中的自定義html標記
回答
不要試圖用RegEx解析HTML。改用DOM。這是一個很好的閱讀:http://php.net/manual/en/book.dom.php
Ruel是正確的,DOM解析是正確的方法來處理它。作爲正則表達式的鍛鍊,然而,這樣的事情應該工作:
<?php
$string = '<wiki href="articletitle">Text</wiki>';
$pattern = '/<wiki href="(.+?)">(.+?)<\/wiki>/i';
$replacement = '<a href="http://myapps/page/$1">$2</a>';
echo preg_replace($pattern, $replacement, $string);
?>
你應該至少讓量詞懶惰,否則這會炸掉。 – 2010-10-04 07:20:49
謝謝 - 已經完成。 – tagawa 2010-10-27 09:56:27
我trying to do something very similar。我建議避免像瘟疫一樣的regEx。它從來沒有像看起來那麼容易,而這些角落案件會引起噩夢。
現在我傾向於Custom Tags圖書館mentioned in this post。最好的一個特點是如下面的代碼塊掩埋或嵌套標籤的支持:
<ct:upper type="all">
This text is transformed by the custom tag.<br />
Using the default example all the characters should be made into uppercase characters.<br />
Try changing the type attribute to 'ucwords' or 'ucfirst'.<br />
<br />
<ct:lower>
<strong>ct:lower</strong><br />
THIS IS LOWERCASE TEXT TRANSFORMED BY THE ct:lower CUSTOM TAG even though it's inside the ct:upper tag.<br />
<BR />
</ct:lower>
</ct:upper>
我強烈建議下載zip文件,並通過它包含的例子看。
我正在使用查詢路徑來做到這一點,這裏是一個博客文章,有很多代碼示例。
http://www.wingtiplabs.com/blog/posts/2013/03/18/domain-specific-markup-language/
- 1. PHP中的自定義HTML標記
- 2. 自定義標記與Php
- 3. 需要解析自定義標記的HTML文檔中的PHP
- 4. HTML標記的iOS自定義字體
- 5. 自定義Google地圖標記HTML
- 6. HTML模板(自定義)標記
- 7. 用戶自定義HTML標記
- 8. 使用自定義HTML標記
- 9. Zend \ Form自定義HTML標記
- 10. 自定義標記
- 11. MagicSuggest使用HTML或jQuery代碼添加自定義標記
- 12. HTML標記中的gridview中的BoundField的自定義消息
- 13. 從自定義類獲取標記值
- 14. 獲取自定義從HTML標籤
- 15. iOS中的標記羣集中的自定義標記圖標
- 16. 自定義JSP標記 - 如何獲取標記的主體?
- 17. 創建加載外部html文件的自定義Html標記
- 18. Google跟蹤代碼管理器中的自定義HTML標記不起作用
- 19. React JSX中的自定義HTML元素標記
- 20. 如何自定義由MVC中ValidationMessageFor生成的HTML標記
- 21. 使用PowerShell解析html文件中的自定義標記
- 22. AngularJS指令中自定義HTML標記的後果
- 23. 在Chrome中獲取自定義HTML標記的高度和寬度
- 24. 確定哪個自定義HTML標記是有問題的IE8
- 25. 自定義JSP標記中的會話
- 26. osm中的自定義覆蓋標記
- 27. intellij中的自定義評論標記
- 28. matplotlib中的自定義標記
- 29. Freemarker中的自定義JSP標記
- 30. Android中的自定義標記屬性
誰的代碼正在創建這些自定義標籤? – egrunin 2010-10-04 02:05:40