2010-12-03 3 views
0

Je pense que j'ai raison de dire que RegEx peut faire ce travail, je ne suis pas sûr de savoir comment je le ferais!Comment utiliser une regex PHP pour transformer le contenu de certains attributs de balises HTML?

Fondamentalement, j'ai un certain nombre de liens sur mon site qui sont au format:

<a href="EXAMPLE/Example.html">Example</a> 

J'ai besoin de code qui transformera la valeur href afin qu'il soit imprimés dans les minuscules, mais cela ne affecter le texte d'ancrage. E.g .:

<a href="example/example.html">Example</a> 

Est-ce possible? Et si oui, quel serait le code pour le faire?

+0

Un regex ne peut faire aucune transformation. C'est une fonction de remplacement qui fera la transformation, les expressions régulières ne sont utilisées que pour aider à trouver les bons bits à transformer – Gareth

+0

Rappelez-vous: "example.com/EXAMPLE" est _not_ le même que "example.com/example". Vous allez briser le lien. – KingCrunch

+0

* (connexe) * [Meilleures méthodes pour analyser HTML] (http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662) – Gordon

Répondre

2

vous pouvez utiliser preg_replace_callback

quelque chose comme ça

function replace($match){ 
    return strtolower($matches[0]) 
} 

... 
preg_replace_callback('/(href="[^"]*")/i' 'replace',$str); 
Questions connexes