preg_match et retour chariot ? (problème de base inside)

preg_match et retour chariot ? (problème de base inside) - PHP - Programmation

Marsh Posté le 02-09-2007 à 16:13:26    

Hello,
Je rencontre un petit problème avec preg_match()
 
Voici un petit script, j'ai enlevé tout ce qui n'est pas un probleme donc ça va etre tres simple pour vous, hauts grands experts :whistle:
 

Code :
  1. <?php
  2. $file = "Bonjour
  3. <b>
  4. Gros Pingouin
  5. </b>
  6. LoL";
  7. preg_match("#\<b>(\r)(.*?)(\r)\</b>#si", $file, $result);
  8. print_r($result);
  9. ?>


 
Je voudrais récuperer "Gros Pingouin" sans les retours chariots, et ça ne marche pas.
En l'état actuel l'array est vide, surement parce que ce n'est pas (\r) qu'il faut utiliser.
 
Donc j'aimerais savoir comment on peut mettre des retours chariot dans le masque, visiblement là c'est pas la bonne méthode.
 
Je débute en expression reguliere :(
 
Merci d'avance :hello:


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
Reply

Marsh Posté le 02-09-2007 à 16:13:26   

Reply

Marsh Posté le 02-09-2007 à 16:14:41    

Hay le masque passe pas, il faut commencer a quoter mon message pour voir la réalité ^^
 
Je précise que j'ai deja cherché pas mal sur google, a chaque fois ils mettent bien \r comme retour chariot, donc c'est ce que j'ai fait... :/


Message édité par ZePRiNCE le 02-09-2007 à 16:15:46

---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
Reply

Marsh Posté le 02-09-2007 à 17:58:49    

Euh, là j'ai du louper un chapitre dans le prologue du php :
 

Code :
  1. <?php
  2. $file = "Bonjour
  3. <b>\nGros Pingouin\n</b>
  4. LoL";
  5. preg_match('@<b>(\n)(.*?)(\n)</b>@U', $file, $result);
  6. print_r($result);
  7. ?>


 
Ca marche...
Maintenant, je remplace les \n de <b>\nGros Pingouin\n</b> par de vrai retour a la ligne, ça ne marche plus...
 
Mais qu'est-ce donc cette diablerie, messir ? :o


Message édité par ZePRiNCE le 02-09-2007 à 17:59:00

---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
Reply

Marsh Posté le 02-09-2007 à 18:57:05    

#<b>\r?\n(.*?)\r?\n</b>#s
 
C'est quoi ces antislash devant les "<" dans le code de ton premier post ? (J'ai fait "voir bbcode" ).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 02-09-2007 à 19:01:09    

C'est ce que j'avais vu dans phpBB (je sais c'est pas une référence niveau propreté du code :o)
 
Sinon, une différence entre # et @ ?
 
Je viens d'essayer ton truc, ça marche niquel, merci !
 
Juste, peut tu m'expliquer \r?\n stp ?
Est-ce que ça veut dire : "retour chariot ET saut ligne" ?


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
Reply

Marsh Posté le 02-09-2007 à 19:03:11    

En fait ouais le \ devant un < ça gêne pas dans une regexp, au temps pour moi donc, même si ça ne sert pas à grand chose ici...
 
\r?\n veut dire soit \n soit \r\n (\r 0 ou une fois, \n une fois), qui me semblent être les deux "codages" possibles d'un retour à la ligne (sous Linux c'est juste \n je crois, et sous Win \r\n, à moins que ce soit l'inverse).


Message édité par sielfried le 02-09-2007 à 19:04:01

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 02-09-2007 à 19:04:40    

OK merci bien pour l'info ;)
 
Pour les antislash effectivement ils ne servent a rien ici, ça marche tout aussi bien sans :)
 
Merci a toi :hello:


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed