簡體   English   中英

用php regex替換標簽的html

[英]replace html of tags with php regex

我有一種情況,我認為我可能必須使用正則表達式來改變基於class屬性的html標簽內容或src。

要記錄我將解析將很好地形成html,部分html或php文件。

EG我需要使用內部內容更改/填充這些標記:fileX.php

<?php
echo <<<_END
<div class="identifyingClass1"></div>
<div class="identifyingClass2"><span>holding content</span></div>
<img src='http://source.com/to/change' class='identifyingClass3' alt='descrip'/>
_END;

產生的fileX.php

<?php
echo <<<_END
<div class="identifyingClass1">New content jsd soisvkbsdv</div>
<div class="identifyingClass2">More new content</div>
<img src='new/source.tiff' class='identifyingClass3' alt='descrip'/>
_END;

html可以完成,可以用php分隔,原樣,在hereDOC里面...

實現這一目標的最佳方法是使用正則表達式還是有人看過或使用過類這類東西?

對於這種情況, 正則表達式是邪惡的。 更好地處理生成的html。 這是你如何做到的。

啟用輸出緩沖 ob_start函數上添加自己的回調。 在處理程序內處理生成的帶有DOMDocument的 html。 像這樣的東西,

function my_handler($contents){
     $doc = DOMDocument::loadHTML ($contents);
     // change your document here and return it later
     return $doc->saveHTML();
}
ob_start('my_handler');

如前所述,建議不要使用RegEx來做這類事情。 看看這個優秀的答案。 我個人最喜歡的是SimleDom ,它提供了類似jQuery的語法,並且在PHP中使用HTML實際上很快樂;)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM