Se connecter avec
S'enregistrer | Connectez-vous

Remplacer du Texte

Dernière réponse : dans Programmation

Bonjour,

J'ai , je pense cette fonction
  1. function html_encode($text)
  2. {
  3. $searcharray = array(
  4. "'([-_\w\d.]+@[-_\w\d.]+)'",
  5. "'((?:(?!://).{3}|^.{0,2}))(www\.[-\d\w\.\/]+)'",
  6. "'(http[s]?:\/\/[-_~\w\d\.\/]+)'");
  7.  
  8. $replacearray = array(
  9. "<a href=\"mailto:\\1\">\\1</a>",
  10. "\\1http://\\2",
  11. "<a href=\"\\1\" target=_blank>\\1</a>");
  12.  
  13. return preg_replace($searcharray, $replacearray, stripslashes($text));
  14. }


Fonction qui code les adresses Mails en y ajoutant un espace.

Je souhaiterais la modifier pour que n'apparaisse plus du tout l'adresse mail mais "Mail Non Dispo" .

N'y connaissant rien ....

Autres pages sur : remplacer texte

Lassé par la pub ? Créez un compte
Expert Programmation

fannederap a dit :
Bonjour,

J'ai , je pense cette fonction
  1. function html_encode($text)
  2. {
  3. $searcharray = array(
  4. "'([-_\w\d.]+@[-_\w\d.]+)'",
  5. "'((?:(?!://).{3}|^.{0,2}))(www\.[-\d\w\.\/]+)'",
  6. "'(http[s]?:\/\/[-_~\w\d\.\/]+)'");
  7.  
  8. $replacearray = array(
  9. "<a href=\"mailto:\\1\">\\1</a>",
  10. "\\1http://\\2",
  11. "<a href=\"\\1\" target=_blank>\\1</a>");
  12.  
  13. return preg_replace($searcharray, $replacearray, stripslashes($text));
  14. }


Fonction qui code les adresses Mails en y ajoutant un espace.

Je souhaiterais la modifier pour que n'apparaisse plus du tout l'adresse mail mais "Mail Non Dispo" .

N'y connaissant rien ....


Sauf erreur de ma part, tu remplace
  1. <a href=\"mailto:\\1\">\\1</a>


par
  1. <a href=\"mailto:\\1\">Mail non dispo</a>

dans ce cas, en cliquant sur mail non dispo, tu auras quand même le lien vers ton mail

ou par
  1. <a href=\"\">Mail non dispo</a>

si tu ne veux plus de mail du tout (bien que je n'en vois pas l'intérêt

ou par
  1. <a href=\"\">\\1</a>

si tu veux un mail visible mais dont le lien ne renvoie sur rien.
Expert Programmation

Les regex en bref :

() définissent un morceau
[] définissent un ensemble de caractères
\ balise un caratère particulier
? entre 0 et 1 fois
+ entre 1 et plusieurs fois
* entre 0 et plusieurs fois

Tu utilises deux tableaux de 3 lignes chacun.
D'un côté quoi transformer, de l'autre comment.

(J'ai réécris tes 1ers regex sans les quotes ni les backslashes doublés)

  1. ([-_\w\d.]+@[-_\w\d.]+)


En un seul premier morceau -- ()
considérer un caractère parmi le tiret, le soulignement, les lettres, les chiffres ou le point -- -_\w\d
considérer ce caractère 1 ou plusieurs fois -- +
Avec au milieu un @
Puis encore le même ensemble d'au moins un caractère parmi le tiret, le soulignement, les lettres, les chiffres ou le point.

  1. <a href="mailto:\1">\1</a>


Prendre le morceau N°1 et écrire une balise <a> avec.

Au lieu de ça, que veux-tu ? Surtout pas d'ancre mailto ! Au boulot :

  1. $replacearray = array(
  2. "<b>Mail Non Dispo!</b>",
  3. "\\1http://\\2",
  4. "<a href=\"\\1\" target=_blank>\\1</a>");
Expert Programmation

Grillé par Marsien de 50 minutes et je ne l'ai pas vu !

herve, je te prie quand même de comprendre au moins la solution, à la lumière de mon humble contribution, de celle de marsien ou des résultats de google.

enjoy!
Lassé par la pub ? Créez un compte