PHP一致SRC置換

WBOY
リリース: 2023-05-07 12:51:07
オリジナル
688 人が閲覧しました

Web サイト開発では、ページ内のすべての画像アドレス (src) を新しいアドレスに置き換えるなど、ページ コードの特定の部分をバッチで置き換える必要がある状況によく遭遇します。現時点では、PHP が提供する強力な正規表現を使用してこれを実現できます。

まず、変更する必要がある HTML コードを取得する必要があります。 file_get_contents() 関数を使用すると、ファイルから読み取るか、URL から HTML コードを取得できます。

$html = file_get_contents('http://www.example.com/page.html');
ログイン後にコピー

次に、ページ上のすべての画像アドレスに一致する正規表現を作成する必要があります。 HTML ページでは、すべてのイメージ タグの src 属性は src="xxxxxx" の形式で表示されます。したがって、次のように、すべての src 属性に一致する正規表現を作成できます。

$pattern = '/src=[\'"]([^\'"]+)[\'"]/i';
ログイン後にコピー

この正規表現では、角かっこ [] は、一重引用符、二重引用符を含む文字セットを表すために使用されます。一重引用符と二重引用符を除くその他の文字。プラス記号は、前の文字セットと少なくとも 1 回一致するために使用されます。括弧 () を使用してグループ化を示し、src 属性の値を抽出します。 /i フラグは、大文字と小文字を区別しないことを示すために使用されます。

次に、preg_replace_callback() 関数を使用して置換操作を実装する必要があります。この関数はコールバック関数を呼び出して、一致した結果ごとに置換操作を実行できます。このコールバック関数では、一致する src 属性の値を取得し、置換操作を実行できます。

$newHtml = preg_replace_callback($pattern, function($matches) {
    $oldSrc = $matches[1];
    $newSrc = getNewSrc($oldSrc);
    return 'src="' . $newSrc . '"';
}, $html);
ログイン後にコピー

このコールバック関数では、まず一致する src 属性 $oldSrc の値を取得し、次に getNewSrc() 関数を呼び出して新しいイメージ アドレス $newSrc を取得し、それを src 属性に割り当てます。そして置換された文字列を返します。

置換操作が完了したら、新しい HTML コードをファイルに出力または保存できます。

echo $newHtml;
file_put_contents('new.html', $newHtml);
ログイン後にコピー

完全なコードは次のとおりです:

$html = file_get_contents('http://www.example.com/page.html');

$pattern = '/src=[\'"]([^\'"]+)[\'"]/i';

$newHtml = preg_replace_callback($pattern, function($matches) {
    $oldSrc = $matches[1];
    $newSrc = getNewSrc($oldSrc);
    return 'src="' . $newSrc . '"';
}, $html);

echo $newHtml;
file_put_contents('new.html', $newHtml);

function getNewSrc($oldSrc) {
    // do something to get the new src
    return $newSrc;
}
ログイン後にコピー

PHP の正規表現を使用すると、ページの特定の部分をバッチで簡単に置き換えることができ、Web サイトの開発と保守をより効率的に行うことができます。 。

以上がPHP一致SRC置換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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