Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2871 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Problème avec preg_replace ...

n°1278124
Dj YeLL
$question = $to_be || !$to_be;
Posté le 06-01-2006 à 12:26:12  profilanswer
 

Reprise du message précédent :

nero27 a écrit :

Tu veux dire :

Code :
  1. $pattern='#[\b\s]'.preg_quote($code[$i],'#').'[\b\s]#i';


Non ?
 
Sinon, ça a quoi de mieux au juste ?


 
Euh, oui :D
 
Sinon ça t'évite ton (\W|$)


---------------
Gamertag: CoteBlack YeLL
mood
Publicité
Posté le 06-01-2006 à 12:26:12  profilanswer
 

n°1278130
nero27
Posté le 06-01-2006 à 12:30:59  profilanswer
 

ok, merci ;)
 
En tout cas, merci beaucoup pour votre aide, je commence à me sentir plus à l'aise avec les RegExp et je trouve ça tellement puissant que je suis parti à tout remplacer par des RegExp ^^

n°1278142
omega2
Posté le 06-01-2006 à 12:41:35  profilanswer
 

Si c'est faisable en une instruction sans regexp, alors n'utilise pas les regexp. les regexp sont quand même beaucoup plus lent qu'une recherche/remplacement de chaine fixe.

n°1278208
Dj YeLL
$question = $to_be || !$to_be;
Posté le 06-01-2006 à 14:38:51  profilanswer
 

C'est clair, il faut faire attention à ne pas en mettre partout.
 
Genre, un truc con ... remplacer les retour à la ligne dans un formulaire par des <br/>.
 
ne pas faire preg_replace('#\n#','<br />',$montexte) ... alors qu'une fonction existe (nl2br).
 
Et c'est le cas pour pas mal de choses. Un lorsqu'il n'y a pas d'expression régulière, pas la peine de faire un preg_replace si un str_replace suffit.


---------------
Gamertag: CoteBlack YeLL
n°1278232
nero27
Posté le 06-01-2006 à 15:10:37  profilanswer
 

Oui, ça va de soit ;)
 
Je parlais surtout pour remplacer des str_replace et cie dans des boucles for, etc ...

n°1291150
nero27
Posté le 24-01-2006 à 16:53:22  profilanswer
 

J'ai (encore) besoin d'aide :
dans mon bbcode, j'ai des balises [ size=nombre] et [/size] que je remplace par  

Code :
  1. <span style="text-size: nombre px">...</span>


 
Seulement, je voudrais définir un maximum de 18 pixels et un minimum de 5pixels : auriez-vous une idée pour faire cela ? (je bloque car il est impossible de savoir combien de ces balises il y a dans le message :/)
 
Merci d'avance :jap:

n°1291160
Dj YeLL
$question = $to_be || !$to_be;
Posté le 24-01-2006 à 16:56:26  profilanswer
 

Bah quand tu parles les balises, tu fais :
 
$txtsize = $txtsize > 18 ? 18 : $txtsize < 5 ? 5 : $txtsize;
 
Je crois que ça doit marcher.


---------------
Gamertag: CoteBlack YeLL
n°1291183
nero27
Posté le 24-01-2006 à 17:12:53  profilanswer
 

Pour les balises, je fais comme ceci :

Code :
  1. $txt=preg_replace("#\[size=(.*?)\](.*?)\[/size\]#is", "<span style=\"font-size:$1px\">$2</span>", $txt)


 
Donc, je ne pense pas pouvoir appliquer cette méthode :/

n°1291196
anapajari
s/travail/glanding on hfr/gs;
Posté le 24-01-2006 à 17:23:52  profilanswer
 

utilise l'option e (pour execute) sur ta regex + plus le code de Dj Yell un truc dans le genre:

Code :
  1. $txt=preg_replace("#\[size=(.*?)\](.*?)\[/size\]#eis", "'<span style=\"font-size:'.($1 > 18 ? 18 : $1 < 5 ? 5 : $1).'px\">$2</span>'", $txt);

n°1291225
Dj YeLL
$question = $to_be || !$to_be;
Posté le 24-01-2006 à 18:00:00  profilanswer
 

Oui, un truc dans le genre devrait être bon je pense :)


---------------
Gamertag: CoteBlack YeLL
mood
Publicité
Posté le 24-01-2006 à 18:00:00  profilanswer
 

n°1291231
nero27
Posté le 24-01-2006 à 18:13:10  profilanswer
 

Ok, merci ^^
 
J'ai du légèrement modifier mais ça marche :jap:
 

Code :
  1. $txt=preg_replace("#\[size=(.*?)\](.*?)\[/size\]#eis", "'<span style=\"font-size:'.($1 > 18 ? 18 : ($1 < 5 ? 5 : $1)).'px\">$2</span>'", $txt);


Message édité par nero27 le 24-01-2006 à 18:13:41
n°1291238
nero27
Posté le 24-01-2006 à 18:23:17  profilanswer
 

Par contre, j'ai quelques problèmes à l'imbriquer dans mon code :
 

Code :
  1. $pattern = "#(^|\[/code\])(.*?)($|\[code\])#ise";
  2. $replacement = '"$1" . preg_replace("#\[size=(.*?)\](.*?)\[/size\]#ise", "<span style=\"font-size:".(\$1 > 18 ? 18 : (\$1 < 5 ? 5 : \$1))."px\">\$2</span>", stripslashes("$2" )) . "$3"';
  3. $txt = preg_replace($pattern, $replacement, $txt);


 
Je me mélange dans les quotes :pt1cable:

n°1292396
nero27
Posté le 26-01-2006 à 08:48:43  profilanswer
 

Personne ne peut m'aider ?

n°1293428
sielfried
Posté le 27-01-2006 à 14:41:58  profilanswer
 

Code :
  1. $pattern = '#(^|\[/code\])(.*?)($|\[code\])#ise';
  2. $replacement = '"$1" . preg_replace(\'#\[size=(.*?)\](.*?)\[/size\]#ise\', \'"<span style=\"font-size: " . (\$1 > 18 ? 18 : (\$1 < 5 ? 5 : \$1)) . "px\">\$2</span>"\', stripslashes("$2" )) . "$3"';
  3. $txt = preg_replace($pattern, $replacement, $txt);


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1293452
nero27
Posté le 27-01-2006 à 15:05:53  profilanswer
 

Merci beaucoup, ça fonctionne parfaitement :jap:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Problème de t=remplace_tag[css] problème de padding sous firefox
[RESOLU] Problème avec un IF imbriqué dans une boucle FORProblème avec l'installation d'un wiki
[HTML] Problème de tableaux avec internet explorer[GLUT] Probleme avec boucle while
Problème preg_replace() et chiffres, numéros[resolu] Probleme de PREG_REPLACE
probleme avec fonctions preg_replace 
Plus de sujets relatifs à : Problème avec preg_replace ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR