0

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 で区切られている可能性があります。そのままである可​​能性があります。

これを達成するための最良の方法は、正規表現を使用することですか、またはこの種のクラスを見たり使用したりした人はいますか?

4

2 に答える 2

2

そのような場合、正規表現は悪です。生成された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');
于 2012-11-13T22:37:35.960 に答える
0

すでに述べたように、正規表現はそのようなことを行うにはお勧めできません。この素晴らしい答えを見てください。私の個人的なお気に入りはSimleDom です。これは jQuery のような構文を提供し、PHP での HTML の操作を実際に楽しいものにします ;)。

于 2012-11-13T22:52:52.737 に答える