Ce que je veux faire est de remplacer le "[remplacer]" dans la chaîne d'entrée par la vaule correspondante dans le tableau de remplacement. Le nombre total de valeurs va changer mais il y aura toujours le même nombre dans le tableau de remplacement que dans la chaîne d'entrée. J'ai essayé de le faire avec preg_replace et preg_replace_callback mais je ne peux pas obtenir le motif correct pour [remplacer], j'ai aussi essayé d'utiliser vsprintf mais le% en <table width="100%">
était en train de tout gâcher. Toute aide est grandement appréciée!preg_replace remplacement par tableau
Remplacer une:
$array = array('value 1','value 2','value 3');
chaîne Entrée
$string = '
<table width="100%">
<tr>
<td>Name:</td>
<td>[replace]</td>
</tr>
<tr>
<td>Date:</td>
<td>[replace]</td>
</tr>
<tr>
<td>Info:</td>
<td>[replace]</td>
</tr>
</table>
';
Résultat souhaité
<table width="100%">
<tr>
<td>Name:</td>
<td>value 1</td>
</tr>
<tr>
<td>Date:</td>
<td>value 2</td>
</tr>
<tr>
<td>Info:</td>
<td>value 3</td>
</tr>
</table>
Je suggère fortement à l'aide d'un analyseur HTML à la place. Non seulement il est mieux adapté à la tâche à accomplir, mais il sera probablement plus facile d'accomplir la fonctionnalité que vous désirez. – Amber
@Amber hein? un analyseur pour cela? Je pense que vous avez mal lu la question. – Artefacto
Je n'ai pas mal lu. Itérer à travers les éléments d'un arbre DOM analysé, les manipuler et les réécrire serait une solution beaucoup plus propre que regex. – Amber