par
Victor BRITO » 04 août 2008, 12:17
Il ne manque qu'une petite explication de ce que fait cette ER pour que ça ne ressemble pas à un bout de code donnée et utilisé sans compréhension

L'expression rationnelle ci-dessus (compatible PERL, ce qui a pour avantage d'être plus rapide qu'une expression rationnelle de type POSIX utilisée par les fonctions en ereg_* et eregi_*) va chercher dans la variable $ton_contenu (qui est une chaîne contenant le code HTML) une sous-chaîne contenant la balise d'ouverture object (dans laquelle peuvent se trouver des attributs, d'où le sélecteur universel . pour chercher n'importe quel caractère pouvant être compris entre object et >, le ? permettant d'éviter de capturer plusieurs >), n'importe quel caractère pouvant apparaître ou pas (cas d'un élément object vide, par exemple) et la balise de fermeture object, et ce sans tenir compte de la sensibilité à la casse (drapeau i). Cette sous-chaîne sera (puisqu'on utilise la fonction preg_replace()) remplacée par une chaîne vide, ce qui a pour effet d'éliminer tout élément object contenu dans la variable $ton_contenu.
Si ta variable est une chaîne de type '<object>le reste du code</object>', évidemment ça retirera tout. Auquel cas il faudra affiner l'expression régulière (encore faut-il savoir ce que tu veux éliminer précisément dans ton code).
[quote="zeus"]Il ne manque qu'une petite explication de ce que fait cette ER pour que ça ne ressemble pas à un bout de code donnée et utilisé sans compréhension ;)[/quote]
L'expression rationnelle ci-dessus (compatible PERL, ce qui a pour avantage d'être plus rapide qu'une expression rationnelle de type POSIX utilisée par les fonctions en ereg_* et eregi_*) va chercher dans la variable $ton_contenu (qui est une chaîne contenant le code HTML) une sous-chaîne contenant la balise d'ouverture object (dans laquelle peuvent se trouver des attributs, d'où le sélecteur universel . pour chercher n'importe quel caractère pouvant être compris entre object et >, le ? permettant d'éviter de capturer plusieurs >), n'importe quel caractère pouvant apparaître ou pas (cas d'un élément object vide, par exemple) et la balise de fermeture object, et ce sans tenir compte de la sensibilité à la casse (drapeau i). Cette sous-chaîne sera (puisqu'on utilise la fonction preg_replace()) remplacée par une chaîne vide, ce qui a pour effet d'éliminer tout élément object contenu dans la variable $ton_contenu.
Si ta variable est une chaîne de type '<object>le reste du code</object>', évidemment ça retirera tout. Auquel cas il faudra affiner l'expression régulière (encore faut-il savoir ce que tu veux éliminer précisément dans ton code).