J'essaie d'utiliser des expressions régulières pour rechercher dans une chaîne, remplacer plusieurs valeurs et créer une URL. Je n'ai jamais utilisé regex (à partir de zéro) avant donc un peu coincé.PHP Regex preg_replace plusieurs valeurs entre parenthèses
La chaîne est comprise entre [parenthèses carrées] en tant qu'identifiant. J'ai essayé plusieurs approches - Je ne comprends pas comment structurer la méthode regex ou preg_replace pour pouvoir effectuer plusieurs remplacements, idéalement sans beaucoup de répétition des lignes regex, mais c'est la direction que j'essaie:
$string= '[mycode="gallery" type="single" id="1" data="only"]'; //INPUT
$string = preg_replace('/\mycode="(.*)"\]/', '$1/mycode"', $string);
$string = preg_replace('/\type="(.*)"\]/', 'mycode_$1.php', $string);
$string = preg_replace('/\id="(.*)"\]/', '?id=$1', $string);
$string = preg_replace('/\data="(.*)"\]/', '&data=$1', $string);
en fin de compte à la sortie:
galerie/_mycode_single.php id = 1 & data = uniquement (avec le [] enlevé trop)
Je sais que cela ne fonctionne pas actuellement comme je le fais pas? connaître la méthode pour compiler les sorties des lignes multiples; Toute aide serait appréciée. Merci!
Désolé, oui - la] Je pense que c'était une faute de frappe de la part des efforts antérieurs. Je n'ai pas utilisé preg_replace_callback avant - pouvez-vous élaborer? Je suppose que vous voulez utiliser cela pour obtenir le contenu des [] crochets en premier, avant de faire quoi que ce soit d'autre? – WWD
En utilisant la réponse fournie ci-dessous - merci encore – WWD