2011-03-02 4 views
1

quelle est la meilleure façon de remplacer une chaîne comme celui-ci à l'aide preg_replace:Supprimer un lien spécifique en utilisant PHP preg_replace

<a class="left" href="javascript:goBack()">Back</a> 

Il est une chaîne exacte qui apparaît dans de nombreux endroits, et je besoin parti. J'ai essayé preg_replace('#<a class="left" href="javascript:goBack()">Back</a>#','',$str);

et preg_replace('#<a class="left" href="javascript:goBack\\(\\)">Back<\\/a>#','',$str) mais pas de joie.

toute aide reçue avec gratitude.

Répondre

3

Il n'est absolument pas nécessaire d'utiliser preg_replace si vous connaissez la chaîne exacte que vous voulez faire correspondre. Utilisez str_replace:

$str=str_replace('<a class="left" href="javascript:goBack()">Back</a>','', $str); 
+0

+1 Battez-moi! – jeroen

+0

Salut les gars, j'ai l'impression que str_replace peut être éliminé, n'est-ce pas le cas? –

+0

@Liam Bailey Pas du tout. Quelqu'un a complètement mal compris quelque chose. str_replace est une méthode de base et restera presque certainement pour toujours. Google codesearch seul peut trouver 280000 scripts qui l'utilisent, donc le supprimer conduirait à de plus grandes incompatibilités que la mise à jour de php3 à php6. – phihag

0

S'il y a une raison d'utiliser preg_replace au lieu de str_replace, essayez ceci:

preg_replace('#\Q<a class="left" href="javascript:goBack()">Back</a>\E#','',$str); 

qui PROVOQUERONT à traiter comme des caractères normaux (comme tout métacaractères la dans la chaîne :-) ( et )) sans de leurs significations spéciales.