Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Class template

Votre avis, vos améliorations et idées (surtout ^^)
Feu follet
Avatar de emmablack
  • Age : 18 ans
  • Messages : 199
  • Inscrit : 11 Mars 2006
  Lien vers ce message 28 Décembre 2007, 16:51

Reprise du dernier message

Ahhhhhhhhh ^^

C'est tout bête en fait quand on a comprit xD

Merci pour ton aide :)


http://www.emmablack.net/site/img/sig/signature.png
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 28 Décembre 2007, 17:25
En gros, dans "$m" de la fonction de géno, c'est un tableau qui recense toutes les captures de la regex. C'est come si tu utilisais ton $1, $2, etc dans un preg_replace.


 
Feu follet
Avatar de emmablack
  • Age : 18 ans
  • Messages : 199
  • Inscrit : 11 Mars 2006
  Lien vers ce message 28 Décembre 2007, 17:27
C'est ce que j'ai remarqué ^^

J'ai eu du mal à trouvé comment appelé une méthode pour le callback... J'ai rien vu sur php.net
Et j'ai regardé dans la class teplate de FSB2 et j'ai vu ça: array(&$this, 'méthode')

Le '&' est-il indispensable?


http://www.emmablack.net/site/img/sig/signature.png
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 28 Décembre 2007, 17:37
Ca dépend des cas. DAns un objet, je ne sais pas si c'est necessaire de foutre une référence, puisque $this est déjà une référence à l'objet courant...


 
Feu follet
Avatar de emmablack
  • Age : 18 ans
  • Messages : 199
  • Inscrit : 11 Mars 2006
  Lien vers ce message 28 Décembre 2007, 17:39
Sans le $this ça ne marche pas en tout cas...


http://www.emmablack.net/site/img/sig/signature.png
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 28 Décembre 2007, 18:20
Ca c'est normal >_>'


 
Feu follet
Avatar de emmablack
  • Age : 18 ans
  • Messages : 199
  • Inscrit : 11 Mars 2006
  Lien vers ce message 28 Décembre 2007, 18:24
J'avais comprit que tu disais que $this n'est pas nécessaure avant :S
C'est pour ça que j'ai dit ça ^^

Sinon j'ai mit à jour le fichier. J'ai ajouté une regex pour recherché d'abord les switch sur une ligne, et ensuite ceux sur plusieurs lignes et j'ai fait en sorte que le else du switch puisse se faire aussi sur plusieurs lignes. (ca fait beaucoup de reges pour un seul truc lol)


http://www.emmablack.net/site/img/sig/signature.png
 
Volcan
Avatar de Sékiltoyai
  • Age : 20 ans
  • Messages : 1033
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 28 Décembre 2007, 18:28
Le '&' est-il indispensable?

Il indique de passer la variable par référence et non par recopie. En PHP5, les objets sont automatiquement passés par référence, il n'est donc nécessaire qu'en PHP4…


http://www.phpfrance.com : Support francophone PHP et Web.
http://sekil.labrute.fr/
 
Feu follet
Avatar de emmablack
  • Age : 18 ans
  • Messages : 199
  • Inscrit : 11 Mars 2006
  Lien vers ce message 28 Décembre 2007, 18:30
Merci de la précision ^^


http://www.emmablack.net/site/img/sig/signature.png
 
Feu follet
Avatar de emmablack
  • Age : 18 ans
  • Messages : 199
  • Inscrit : 11 Mars 2006
  Lien vers ce message 29 Décembre 2007, 10:26
Est-ce qu'il est possible qu'une regex arrête la capture au premier élément trouvé ?
C'est à dire si j'ai cette regex :
preg_match('`\{switch name="([a-zA-Z0-9]*)"}(.*)\{/switch}`si', $this->data['content'], $switch)

Et ce code HTML :
{switch name="truc"}
Pour un certain type de personnes
{/switch}
Contenu de la page
{switch name="chose"}
Pour d'autres personnes
{/switch}

Comment faire pour que la regex ne capture que le contenu du premier switch et non le contenu des switch et de la page ?
Merci de votre aide :D


http://www.emmablack.net/site/img/sig/signature.png
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 29 Décembre 2007, 13:13
Justement, preg_match s'arrete au premier element capturé. En me^me temps, tu dois utiliserl'option ungredy ou le marqueur "?" dans tes regex pour... :p


 
Feu follet
Avatar de emmablack
  • Age : 18 ans
  • Messages : 199
  • Inscrit : 11 Mars 2006
  Lien vers ce message 29 Décembre 2007, 13:25
L'opion ungredy ?


http://www.emmablack.net/site/img/sig/signature.png
 
Equipe des MODS
Avatar de Korko
  • Age : 22 ans
  • Messages : 2687
  • Inscrit : 06 Octobre 2004
Message édité 1 fois, dernière édition par Korko, 29 Décembre 2007, 14:00     Lien vers ce message 29 Décembre 2007, 13:44
Ungreedy = Non gourmand.
En gros, je te donne un code :
{switch name="toto"}tototutu{/switch}tralalala{switch name="tata"}tatatutu{/switch}


Si tu fait la regex suivante :
`\{switch name="([a-zA-Z0-9]*)"}(.*)\{/switch}`si

il te retournera :
Citation
array( [0] => array(
[0] => {switch name="toto"}tototutu{/switch}tralalala{switch name="tata"}tatatutu{/switch},
[1] => toto"}tototutu{/switch}tralalala{switch name="tata,
[2] => tatatutu
))


Mais si tu utilises le mode Ungreedy d'une des 2 façons suivantes :
`\{switch name="([a-zA-Z0-9]*?)"}(.*?)\{/switch}`si

`\{switch name="([a-zA-Z0-9]*)"}(.*)\{/switch}`siU

il te retournera :
Citation
array(
[0] => array(
[0] => {switch name="toto"}tototutu{/switch},
[1] => toto,
[2] => tototutu
)
[1] => array(
[0] => {switch name="tata"}tatatutu{/switch},
[1] => tata,
[2] => tatatutu
)
)


Ou un truc du genre.

Tu vois la différence ?
En plus, le mode Ungreedy allege le processeur de regex ^^


Dieu vous aime. Offre soumise à conditions
Je suis une Brute
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 29 Décembre 2007, 13:50
Korko > Pour l'absence de Ungreedy, tu as fait une faute, il ne capturera pas "que" toto :D


 
Equipe des MODS
Avatar de Korko
  • Age : 22 ans
  • Messages : 2687
  • Inscrit : 06 Octobre 2004
Message édité 1 fois, dernière édition par Korko, 29 Décembre 2007, 14:01     Lien vers ce message 29 Décembre 2007, 14:00
En plus oui c'est vrai j'ai tendance à toujours voir en Ungreedy spour ça :p
Enfin meme spa excusable pour moi qui passe mon temps à faire des regex :(
(édité)


Dieu vous aime. Offre soumise à conditions
Je suis une Brute
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
Message édité 1 fois, dernière édition par Talus, 29 Décembre 2007, 15:20     Lien vers ce message 29 Décembre 2007, 15:20
On s'y habitue vite, hein ? :p

(Perso, je préfère même utiliser le commutateur ? que l'option U :p)


 
Répondre


.