ホームページ >バックエンド開発 >PHPチュートリアル >正規表現を使用して複数の属性を持つ HTML タグを照合する方法
属性の順序が不明瞭なため、ルールのないさまざまなタグが存在します
56fe59ba45b4c2e0065f94132c407643
8f1b574f6114941efaa383c40c2e2e01
このようなものですが、属性の順序が異なるものは良いですid href クラスの属性値は数種類あり、それぞれ 1 2 3 に格納されます (タグ全体を指定の形式に置き換える必要があるため、preg_replace を使用します)
長い間考えていたのですが、この正規表現の書き方がわかりませんでした。専門家が助けてくれます
後処理属性を照合するために a8c064eeebde60c0c18494d3bfb71020]*)> を使用することも考えました。次に str_replace を使用してそれらを置き換えますが、この方法で検索を繰り返すと過剰なリソースのオーバーヘッドが発生する可能性があります。また、上記の要件を達成するにはどのような方法を使用できますか?専門家がお手伝いします
$s =<<< TXT<a id="home" href="/Home/index" class="btn"><a href="/Home/index" id="home" class="class"><a class="btn" href="/home" id="home">TXT;echo preg_replace_callback('/<a\s(.+)>/i', 'foo', $s);function foo($r) { preg_match_all('/(\w+)="(.+?)"/', $r[0], $t); $t = array_combine($t[1], $t[2]); ksort($t); $s = ''; foreach($t as $k=>$v) $s .= " $k='$v'"; return "<a$s>";}6cde3b46c08bc1faa066c35d79e362ce
89435c96c88f86ed5b9546a8928ba625
学習のためにコールバック関数を使用することもできることがわかりました。私が文書をよく読んでいなかったせいでもあります ありがとうございます