請注意
使用正則表達式是不修改HTML的最佳方式碼! 在大多數情況下,使用DOMDocument或DOMDocumentFragement對象修改或提取HTML代碼中的數據會更好也更可靠。
不過,也有有效的方案,其中一個正則表達式是更好的,主要是當這些因素適用:
- 你知道你的編輯會在HTML代碼是有效的。
- 被修改的HTML結構在所有情況下都是相同的。
- 您只對代碼做了非常簡單的更改。
- 性能很重要(例如,當它在循環內執行時)。 DOMDocument比簡單的正則表達式慢得多!
代碼
要從一些HTML代碼使用剝離最外面的標記此正則表達式:
/* Note:
* The code must start with an opening tag and end with a closing tag.
* No white space or other text must be present before the first
* tag/after the last tag, else you get some unexpected results.
*/
$contents = preg_replace('/^<[^>]+>|<\/[^>]+>$/', '', $markup);
// ^<[^>]+> This removes the first tag
// <\/[^>]+>$ This removes the last closing tag
實例
此正則表達式適用於大多數HTML標記例如
In: '<div class="my-text" id="text" style="color:red">some text</div>'
Out: 'some text' (expected result)
當第一個標籤包含「>」字符時,它將打破一切,例如,
In: '<div title="Home > Archives">Archive overview</div>'
Out: ' Archives">Archive overview' (unexpected result)
另外,在開始或結束空白/文本將打破正則表達式
In: '<div>Your name</div>:'
Out: 'Your name</div>:' (unexpected result)
當然,任何標籤將被剝離,而沒有任何完整性檢查,例如
In: '<h2>Settings</h2><label>Page Title</label>'
Out: 'Settings</h2><label>Page Title' (unexpected result)
最好使用[DOM](http://www.php.net/manual/en/book.dom.php)比哈克正則表達式 – 2015-02-23 09:52:08
DOM不能選擇標籤的內容而不剝離標籤中的內容。 但是,它可以選擇整個標籤,其內容類似於'
bla
'$ html = $ domElement-> ownerDocument-> saveHTML($ domElement);'應該在$ html中返回Dom節點的內容而不剝離其中的標籤 – 2015-02-23 17:07:20