OVH Cloud OVH Cloud

Remplacement

4 réponses
Avatar
Le Fou
Salut,

[Niveau débutant]
Dans une chaîne $buffer j'aimerais remplacer les mots SCRIPT, script,
ScRiPt, ScripT etc. par ******.
Donc indépendamment de la casse.
Le serveur utilise PHP 4.4.3 et la fonction str_ireplace() n'existe pas
(provoque un message d'erreur).
Y a-t-il un moyen simple et pas trop lourd de remplacer un mot d'une chaîne
par un autre indépendamment de la casse ?
- Faire une "array" avec toutes les écritures de "script" possibles mélant
majuscules et minuscules pour la remplacer par ****** en utilisant
str_replace() ?
- Utiliser ereg_replace() ? Ca revient pas à utiliser une bombe atomique
pour tuer un lapin ?
Merci.

--
Le Fou
Avec une signature spéciale pour modérateur qui modère un peu à la
va-z-y-j-te-ramène ;-)
Elle va passer cette foi ?

4 réponses

Avatar
Calimero
Le Fou wrote:

- Utiliser ereg_replace() ? Ca revient pas à utiliser une bombe atomique
pour tuer un lapin ?


Ou eregi_replace().
Sinon, s'il s'agit de nettoyer les saisies utilisateurs tout en
permettant certaines "fonctionnalités" de l'HTML, il y a par exemple
SafeHTML (utilisé dans SPIP, je crois).

--> http://pixel-apes.com/safehtml/

--
@+
Calimero

Avatar
Olivier Miakinen
Bonjour,


[Niveau débutant]
Dans une chaîne $buffer j'aimerais remplacer les mots SCRIPT, script,
ScRiPt, ScripT etc. par ******.
Donc indépendamment de la casse.
Le serveur utilise PHP 4.4.3 et la fonction str_ireplace() n'existe pas
(provoque un message d'erreur).


En effet, d'après la doc ça n'existe que dans PHP 5.

Y a-t-il un moyen simple et pas trop lourd de remplacer un mot d'une chaîne
par un autre indépendamment de la casse ?
- Faire une "array" avec toutes les écritures de "script" possibles mélant
majuscules et minuscules pour la remplacer par ****** en utilisant
str_replace() ?


Il y a 64 écritures possibles, alors ça me semble un peu lourd aussi.

- Utiliser ereg_replace() ?


Il paraît que les expressions rationnelles de type PCRE sont en général
plus efficaces que celles de type POSIX. Du coup j'utiliserais plutôt
preg_replace.

Note qu'il est inutile d'écrire "/[Ss][Cc][Rr][Ii][Pp][Tt]/" et que tu
peux utiliser à la place "/SCRIPT/i" ou "/script/i".

Ca revient pas à utiliser une bombe atomique
pour tuer un lapin ?


Vu qu'il n'existe pas de fonction plus simple, je dirais que non.

--
Le Fou
Avec une signature spéciale pour modérateur qui modère un peu à la
va-z-y-j-te-ramène ;-)
Elle va passer cette foi ?


Tiens, c'est peut-être moi qui avais refusé l'article précédent.
Note que là tu n'as bien que quatre lignes, mais que le délimiteur
de signature est toujours incorrect.

Avatar
Le Fou

Le Fou :
- Utiliser ereg_replace() ?


Il paraît que les expressions rationnelles de type PCRE sont en général
plus efficaces que celles de type POSIX. Du coup j'utiliserais plutôt
preg_replace.
Note qu'il est inutile d'écrire "/[Ss][Cc][Rr][Ii][Pp][Tt]/" et que tu
peux utiliser à la place "/SCRIPT/i" ou "/script/i".


Merci de ces conseils.


Avec une signature spéciale pour modérateur qui modère un peu à la
va-z-y-j-te-ramène ;-)
Elle va passer cette foi ?


Tiens, c'est peut-être moi qui avais refusé l'article précédent.
Note que là tu n'as bien que quatre lignes, mais que le délimiteur
de signature est toujours incorrect.


Eh oui !
Il faudrait qu'un bon programmeur vienne modifier ma version de OE-QuoteFix
qui est censé corriger ce problème de délimiteur incorrect généré par
Outlook Express 5.0.
;-)

--
A'tchao - Le Fou - Sur une seule ligne !


Avatar
Le Fou
Calimero a écrit :

Sinon, s'il s'agit de nettoyer les saisies utilisateurs tout en
permettant certaines "fonctionnalités" de l'HTML, il y a par exemple
SafeHTML (utilisé dans SPIP, je crois).


Non non, c'est juste pour remplacer "script" sans tenir compte de la casse.
Trop lourd SafeHTML...

--
A'tchao

Le Fou