php correspond au remplacement du src

WBOY
Libérer: 2023-05-07 12:51:07
original
657 Les gens l'ont consulté

Dans le développement de sites Web, nous rencontrons souvent des situations où nous devons remplacer certaines parties du code de la page par lots. Par exemple, nous devons remplacer toutes les adresses d'image (src) de la page par de nouvelles adresses. À l’heure actuelle, nous pouvons utiliser les puissantes expressions régulières fournies par PHP pour y parvenir.

Tout d'abord, nous devons obtenir le code HTML qui doit être modifié. Vous pouvez utiliser la fonction file_get_contents() pour lire un fichier ou obtenir du code HTML à partir d'une URL.

$html = file_get_contents('http://www.example.com/page.html');
Copier après la connexion

Ensuite, nous devons créer une expression régulière pour faire correspondre toutes les adresses d'images de la page. Dans les pages HTML, les attributs src de toutes les balises d'image apparaissent sous la forme src="xxxxxx". Par conséquent, nous pouvons construire une expression régulière pour correspondre à tous les attributs src, comme suit :

$pattern = '/src=[\'"]([^\'"]+)[\'"]/i';
Copier après la connexion

Dans cette expression régulière, les crochets [] sont utilisés pour représenter un ensemble de caractères, qui comprend des guillemets simples, des guillemets doubles et des caractères autres que Guillemets simples. Caractères autres que les guillemets et les guillemets doubles. Le signe plus + est utilisé pour faire correspondre au moins une fois le jeu de caractères précédent. Utilisez des parenthèses () pour indiquer le regroupement et extraire la valeur de l'attribut src. L'indicateur /i est utilisé pour indiquer l'insensibilité à la casse.

Ensuite, nous devons utiliser la fonction preg_replace_callback() pour implémenter l'opération de remplacement. Cette fonction peut appeler une fonction de rappel pour effectuer l'opération de remplacement pour chaque résultat correspondant. Dans cette fonction de rappel, nous pouvons obtenir la valeur de l'attribut src correspondant et effectuer l'opération de remplacement.

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

Dans cette fonction de rappel, nous obtenons d'abord la valeur de l'attribut src correspondant $oldSrc, puis appelons une fonction getNewSrc() pour obtenir la nouvelle adresse de l'image $newSrc, l'attribuons à l'attribut src et renvoyons le remplacement de la chaîne après.

Après avoir terminé l'opération de remplacement, nous pouvons sortir ou enregistrer le nouveau code HTML dans un fichier.

echo $newHtml;
file_put_contents('new.html', $newHtml);
Copier après la connexion

Le code complet est le suivant :

$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;
}
Copier après la connexion

En utilisant les expressions régulières de PHP, nous pouvons facilement remplacer certaines parties de la page par lots, rendant le développement et la maintenance du site Web plus efficaces.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!