Remplacer ereg_replace par preg_replace.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Remplacer ereg_replace par preg_replace.

Re: Remplacer ereg_replace par preg_replace.

par olivxii » 18 janv. 2011, 11:18

moi j'ai le soucis inverse, dans mon regex qui me permet d'avoir mes liens cliquables je me retrouve avec des &nbsp ou des <a href=">
$content = preg_replace('#[a-z0-9._/-?]+#i', '<a href="$0">$0</a>', $content);
resultat en generant le code source
<span class="piece_news_content"><a&nbsp;href="http: google.fr="">http://google.fr&nbsp;</a&nbsp;href="http:></span>
je ne comprend pas trop pourquoi ..

Re: Remplacer ereg_replace par preg_replace.

par stealth35 » 18 janv. 2011, 10:56

Bonsoir,

Les espaces insécables servent, notamment, à afficher une typographie soignée. :) D'expérience, un str_replace marche fort bien, et est rapide. :mrgreen:

Pour la typographie, j'utilise une syntaxe du genre...
$html_source = array('\'', '’', '...', '…', ' :', ' ;', ' !', ' ?', ' %', ' ‰', ' ‱', ' €', '[', ']', '"', '  ' );
$html_target = array('&#8217;', '&#8217;', '&#8230;', '&#8230;', '&#160;:', '&#160;;', '&#160;!', '&#160;?', '&#160;%', '&#160;‰', '&#160;‱', '&#160;€', '&#91;', '&#93;', '"', '' );
str_replace($html_source, $html_target, $string);
Les expressions régulières sont intéressantes, par exemple, pour formater les nombres.

Sinon, j'ai conçu aussi un "typographeur" pour jQuery, à base d'expressions régulières, si ça intéresse quelqu'un. :D

Cordialement,

Gaspard
fais plutôt un htmlentities dans ca cas la :wink:

Re: Remplacer ereg_replace par preg_replace.

par Castor Gaspard » 18 janv. 2011, 00:19

Bonsoir,

Les espaces insécables servent, notamment, à afficher une typographie soignée. :) D'expérience, un str_replace marche fort bien, et est rapide. :mrgreen:

Pour la typographie, j'utilise une syntaxe du genre...
$html_source = array('\'', '’', '...', '…', ' :', ' ;', ' !', ' ?', ' %', ' ‰', ' ‱', ' €', '[', ']', '"', '  ' );
$html_target = array('&#8217;', '&#8217;', '&#8230;', '&#8230;', '&#160;:', '&#160;;', '&#160;!', '&#160;?', '&#160;%', '&#160;‰', '&#160;‱', '&#160;€', '&#91;', '&#93;', '"', '' );
str_replace($html_source, $html_target, $string);
Les expressions régulières sont intéressantes, par exemple, pour formater les nombres.

Sinon, j'ai conçu aussi un "typographeur" pour jQuery, à base d'expressions régulières, si ça intéresse quelqu'un. :D

Cordialement,

Gaspard

Re: Remplacer ereg_replace par preg_replace.

par AB » 17 janv. 2011, 18:16

Pour compléter la réponse de Berzemus je dirai qu'il est difficile de savoir (à moins de rentrer dans les détails de l'application) si ce remplacement est indispensable ou non, par contre quand on a à le faire , le conseil de stealh32 d'utiliser str_replace est judicieux dans le sens ou cela augmente les performances. preg_replace est assez gourmand en ressource et on le réserve normalement pour des tâches plus compliquées que de remplacer simplement un caractère par un autre.

Re: Remplacer ereg_replace par preg_replace.

par Berzemus » 17 janv. 2011, 18:06

mais n'étant pas un expert
Justement, nous oui. :mrgreen:

Re: Remplacer ereg_replace par preg_replace.

par AB » 17 janv. 2011, 18:06

Le &nbsp; c'est pour avoir des espaces insécables. Effectivement ça peut servir dans certains cas...

Re: Remplacer ereg_replace par preg_replace.

par Fredrick » 17 janv. 2011, 17:45

Ok merci ça fonctionne très bien.

Je ne sais pas si c'est utile ou non mais n'étant pas un expert je préfère laisser l'appli telle qu'elle est, je veux pas tout détruire.

Encore merci :D

Re: Remplacer ereg_replace par preg_replace.

par stealth35 » 17 janv. 2011, 17:07

il faut ajouter les délimiteurs comme dit dans la doc
$all_day = preg_replace("/ /", "&nbsp;", get_vocab("all_day")) ;
par contre la ca sert a rien d'utiliser cette fonction utilise str_replace
et même ca sert a rien de remplacer les espace par des &nbsp :wink:

Remplacer ereg_replace par preg_replace.

par Fredrick » 17 janv. 2011, 17:02

Bonjour,

Je viens de migrer mon serveur web sur un nouveau serveur avec une version plus récente de wamp. J'ai une application qui tourne sur ce serveur (grr) et j'ai maintenant un message d'erreur "Function ereg_replace is deprecated in ....".

Sur le net j'ai vu qu'il est possible de remplace ereg_replace par preg_replace mais je n'arrive pas à comprendre comment utiliser la syntaxe.

La ligne originale est :

$all_day = ereg_replace(" ", "&nbsp;", get_vocab("all_day")) ;

POuvez-vous me donnez la syntaxe équivalente avec preg_replace() ?

Merci d'avance.