0

PHPを使用して現在の属性を持つタグに置き換える方法について詳しく説明してもらえますか?

マニュアルといくつかのリファレンスを読みました

php preg_replace を使用して HTML タグを置き換える方法

簡単なコマンドは理解できますが、 preg_replace の検索コマンドは~, $1, /n,などの文字で、まったくわかりません...

交換したい場合

 <script src="core.js"></script>

の中へ

 <temp src="library/js/core.js"></temp>

preg_replace を実装するにはどうすればよいですか?

アドバイスありがとうございます。

4

2 に答える 2

1

HTML に正規表現を使用することは、ほとんど良い考えではありません。DOMを検討してから、次のようにします。

foreach($dom->getElementsByTagName('script') as $script) {
    $temp = $dom->createElement('temp');
    /*
     * create src attribute, append it to $temp and copy value from $script
     * I leave that up to you.
     */
    $script->parentNode->replaceChild($temp, $script);
}
于 2013-01-22T10:38:40.663 に答える
1

正規表現について学ぶ必要があります。このサイトは役に立つリソースです。

preg_replace を使用した簡単な例は、次のようなものです。改善される可能性がありますが、アイデアが得られることを願っています...

<?php
$string = '<script src="core.js"></script>';
$pattern = '/<script src\s?=\s?['|"](.*)['|"]><\/script>/i';
$replace = ' <temp src="library/js/$1"></temp>';
$result = echo preg_replace($pattern, $replace, $string);
?>

文字列の一致したビットを使用して新しい文字列を作成するには、後方参照について学ぶ必要があります。簡単に言えば、括弧で囲まれたパターンの部分は、後で $replace 文字列に含めた $1 トークンを使用して取得できます。この方法で何度でも後方参照できます。ここでも作業を行っているため、正規表現をテストできます。これが役立つことを願っています。

于 2013-01-22T10:39:51.867 に答える