Bonjour,
Ca fait quelques heures que je m'arrache les cheveux sur une regex pour récupérer et modifier des liens "mailto".
Mon but est de remplacer tous mes liens mailto pour éviter les spams pour les rétablir en javascript lors d'un click. C'est juste le contexte, le problème n'est pas fondamentalement sur ce principe.
Tous mes tests de regex fonctionnent en "local", mais pas en prod. Les deux serveurs sont sous Debian 6 avec PHP 5.3, il y a surement quelques différences au niveau de la config et le problème doit venir de là mais je n'arrive pas à trouver quelle option est en cause.
Voici mon code :
Explication : Je veux ajouter une class à mes liens de type mailto et remplacer le contenu par "contact" au cas où le mail s'y trouve.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $html = $trad->texte; $pattern = '`\<a[^>]href=["]mailto:([^">]*?)["][^>]*\>(.*?)\</a\>`uism'; $replace = '<a href="mailto:a.\1b" class="testContact">Contact</a>'; $html = preg_replace($pattern,$replace,$html); echo stripslashes($html);
J'ai essayé un paquet de truc et les regex ont tendance à vite me mettre sur les nerfs, alors quand elles marchent que d'un côté et pas de l'autre...
Mes tests ont l'air de mettre la faute sur les guillemets, un soucis avec une option PHP en particulier ? Magic quote ?
Toute aide sera la bienvenue, vous sauverez une vie parce que là je vais me tirer une balle, si j'arrive à mettre la main sur mon flingue...
Partager