Comment enlever/trouver tous les caractères "spéciaux&q
15 messages
• Page 1 sur 1
-

Leonick - WRInaute accro

- Messages: 19592
- Inscription: 8 Aoû 2004
- Code: Tout sélectionner
$nom=strtr($nom,"()!$'?:
,&+-/.ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ",
"--------------SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy");
-

e-kiwi - Modérateur

- Messages: 15617
- Inscription: 23 Déc 2003
pour une autre utilisation, http://fr3.php.net/htmlspecialchars
-

rottman - WRInaute passionné

- Messages: 2121
- Inscription: 6 Jan 2004
Si c'est pour une url :
- Code: Tout sélectionner
function str2url ($str) {
$str = strtr($str,"ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNn");
$str = strtolower(trim ($str) ) ;
$str = preg_replace ('/[^a-z0-9\-\.,\*]/', '-', $str) ;
$str = preg_replace ('/([\-\.,\*]{2,})/ue', "substr('\\1', 0, 1)", $str) ;
$str = preg_replace ('/^[^a-z0-9]|[^a-z0-9]$/', '', $str ) ;
return ($str) ;
}
- thierry8
- WRInaute accro

- Messages: 3251
- Inscription: 11 Juil 2005
MON MESSAGE A ETE SUPPRIME ?
Pour ma compréhension:
Pourquoi \-\.,\* ?
Et pourquoi mette / en début et fin de chaine sur le preg ?
En tout cas, merci. C'était justement pour une url.
rottman a écrit:Si c'est pour une url :
- Code: Tout sélectionner
function str2url ($str) {
$str = strtr($str,"ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNn");
$str = strtolower(trim ($str) ) ;
$str = preg_replace ('/[^a-z0-9\-\.,\*]/', '-', $str) ;
$str = preg_replace ('/([\-\.,\*]{2,})/ue', "substr('\\1', 0, 1)", $str) ;
$str = preg_replace ('/^[^a-z0-9]|[^a-z0-9]$/', '', $str ) ;
return ($str) ;
}
Pour ma compréhension:
- Code: Tout sélectionner
$str = preg_replace ('/[^a-z0-9\-\.,\*]/', '-', $str) ;
Pourquoi \-\.,\* ?
- Code: Tout sélectionner
$str = preg_replace ('/([\-\.,\*]{2,})/ue', "substr('\\1', 0, 1)", $str) ;
$str = preg_replace ('/^[^a-z0-9]|[^a-z0-9]$/', '', $str ) ;
Et pourquoi mette / en début et fin de chaine sur le preg ?
En tout cas, merci. C'était justement pour une url.
- thierry8
- WRInaute accro

- Messages: 3251
- Inscription: 11 Juil 2005
rottman a écrit:thierry8 a écrit:Et pourquoi mette / en début et fin de chaine sur le preg ?
Parce que c'est la regle
Oui autant pour moi.
Je ne m'en sert que rarement donc je n'ai pas la syntaxe en tête.
Désolé.
Peux tu m'éclairer pour le reste ?
- thierry8
- WRInaute accro

- Messages: 3251
- Inscription: 11 Juil 2005
Oui mais il est utile de savoir comment fonctionne ce que l'on utilise, non ?
Là, il n'est indiqué que quelques signe de ponctuation...
Là, je ne saisis pas...
Le substr('\\1', 0, 1) travail sur rien ?
Si quelqu'un pouvait m'expliquer....
ALors la, grand mystère....
Deux fois [^a-z0-9]|[^a-z0-9] avec un OU entre ?????
Ca serait vraiment cool, si quelqu'un de calé dans les expressions régulières pouvait filler un coup de main !
- Code: Tout sélectionner
$str = preg_replace ('/[^a-z0-9\-\.,\*]/', '-', $str) ;
Là, il n'est indiqué que quelques signe de ponctuation...
- Code: Tout sélectionner
$str = preg_replace ('/([\-\.,\*]{2,})/ue', "substr('\\1', 0, 1)", $str) ;
Là, je ne saisis pas...
Le substr('\\1', 0, 1) travail sur rien ?
Si quelqu'un pouvait m'expliquer....
- Code: Tout sélectionner
$str = preg_replace ('/^[^a-z0-9]|[^a-z0-9]$/', '', $str ) ;
ALors la, grand mystère....
Deux fois [^a-z0-9]|[^a-z0-9] avec un OU entre ?????
Ca serait vraiment cool, si quelqu'un de calé dans les expressions régulières pouvait filler un coup de main !
- Tisha
- WRInaute discret

- Messages: 54
- Inscription: 20 Aoû 2003
C'est pour formater un nom de domaine? c'est ça?
Ce sont les caractères autorisés dans un nom de domaine. Si c'est pour une adresse complète, il manque au moins les caractères "?/=&,%;:". Enlever cette ligne ne serait pas un mal, ou bien la remplacer par quelque chose comme
et j'ai la désagréable sensation d'avoir oublié des caractères
Les caractères "-." qui seront consécutivement en double ou plus seront réduit à un seul caractère. Par exemple, "-----.." deviendra "-.". le "\\1" dans le "substr" est le résultat de la parenthèse "([\-\.,\*]{2,})". Par contre, un nom de domaine "a---b.com" est tout à fait légal, mais cette ligne le transformera en "a-b.com". Donc le "-" serait à enlever du range et pour une adresse complète du style "http://www.example.com/test..html" est, il me semble, tout à fait légal. Donc je dirais d'enlever tout simplement cette ligne.
Un nom de domaine ne peut pas commencer ou finir par "-" donc la partie "^[^a-z0-9]" dit "tout ce qui ne commence pas par" et la partie "[^a-z0-9]$" dit "tout ce qui ne se termine pas par". Bref, ça détruit un caractère "-" qui serait au début et/ou à la fin... et la même chose pour le caractère ".".
oups, ce n'est pas réellement mon cas
tisha
thierry8 a écrit:Oui mais il est utile de savoir comment fonctionne ce que l'on utilise, non ?
- Code: Tout sélectionner
$str = preg_replace ('/[^a-z0-9\-\.,\*]/', '-', $str) ;
Là, il n'est indiqué que quelques signe de ponctuation...
Ce sont les caractères autorisés dans un nom de domaine. Si c'est pour une adresse complète, il manque au moins les caractères "?/=&,%;:". Enlever cette ligne ne serait pas un mal, ou bien la remplacer par quelque chose comme
- Code: Tout sélectionner
$str = preg_replace ('/[^a-z0-9:=&%\-\.\,\?\/,\*]/', '', $str) ;
et j'ai la désagréable sensation d'avoir oublié des caractères
thierry8 a écrit:
- Code: Tout sélectionner
$str = preg_replace ('/([\-\.,\*]{2,})/ue', "substr('\\1', 0, 1)", $str) ;
Là, je ne saisis pas...
Le substr('\\1', 0, 1) travail sur rien ?
Si quelqu'un pouvait m'expliquer....![]()
Les caractères "-." qui seront consécutivement en double ou plus seront réduit à un seul caractère. Par exemple, "-----.." deviendra "-.". le "\\1" dans le "substr" est le résultat de la parenthèse "([\-\.,\*]{2,})". Par contre, un nom de domaine "a---b.com" est tout à fait légal, mais cette ligne le transformera en "a-b.com". Donc le "-" serait à enlever du range et pour une adresse complète du style "http://www.example.com/test..html" est, il me semble, tout à fait légal. Donc je dirais d'enlever tout simplement cette ligne.
thierry8 a écrit:
- Code: Tout sélectionner
$str = preg_replace ('/^[^a-z0-9]|[^a-z0-9]$/', '', $str ) ;
ALors la, grand mystère....
Deux fois [^a-z0-9]|[^a-z0-9] avec un OU entre ?????![]()
Un nom de domaine ne peut pas commencer ou finir par "-" donc la partie "^[^a-z0-9]" dit "tout ce qui ne commence pas par" et la partie "[^a-z0-9]$" dit "tout ce qui ne se termine pas par". Bref, ça détruit un caractère "-" qui serait au début et/ou à la fin... et la même chose pour le caractère ".".
thierry8 a écrit:Ca serait vraiment cool, si quelqu'un de calé dans les expressions régulières pouvait filler un coup de main !
oups, ce n'est pas réellement mon cas
tisha
15 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Comment enlever le "annonces google" ??
- Enlever le Meta tag "Revisit-after" : une mauvaise
- Enlever l'affichage du nombre de "J'aime" sur mes sites web pro
- Enlever "voir forum" et "voir sujet" dan
- suggestion: enlever la ligne "signature"
- Les caractères spéciaux style "" ou "à"
- Enlever du contenu "volontairement"
- Enlever "Annonces Google" ......
- enlever le " de "34353
- MAGPIE RSS : Limiter le nombre de caractères "description"
Consultez la description détaillée des produits ou services de Google suivants : Google Ride Finder, Google SiteLinks
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


