ホームページ > バックエンド開発 > PHPチュートリアル > 正規表現を使用して複数の属性を持つ HTML タグを照合する方法

正規表現を使用して複数の属性を持つ HTML タグを照合する方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-23 14:01:40
オリジナル
1188 人が閲覧しました

属性の順序が不明瞭なため、ルールのないさまざまなタグが存在します



このようなものですが、属性の順序が異なるものは良いですid href クラスの属性値は数種類あり、それぞれ 1 2 3 に格納されます (タグ全体を指定の形式に置き換える必要があるため、preg_replace を使用します)

長い間考えていたのですが、この正規表現の書き方がわかりませんでした。専門家が助けてくれます

後処理属性を照合するために
]*)> を使用することも考えました。次に str_replace を使用してそれらを置き換えますが、この方法で検索を繰り返すと過剰なリソースのオーバーヘッドが発生する可能性があります。また、上記の要件を達成するにはどのような方法を使用できますか?専門家がお手伝いします


ディスカッションに返信(解決策)

今後収集に通常のルールを使用する必要がないように、PHPqueryの使用方法を学ぶことをお勧めします

$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>";}
ログイン後にコピー



ありがとうございます。試してみます。ただし、これはコレクション部分ではなく、テンプレートのコードの分離です。プロジェクトは大きくないので、小さなテンプレート エンジンを自分で実装してみてください

学習のためにコールバック関数を使用することもできることがわかりました。私が文書をよく読んでいなかったせいでもあります ありがとうございます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート