Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2011, 16h48   #1
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Par défaut Paramètre et appel de fonction

Bonjour à tous

J'ai trouvé cette fonction qui me permet d'enlever les accents:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function unaccent($string) {
                    $table = array(
                        'Š' => 'S', 'š' => 's', 'Đ' => 'Dj', 'đ' => 'dj', 'Ž' => 'Z', 'ž' => 'z', 'Č' => 'C', 'č' => 'c', 'Ć' => 'C', 'ć' => 'c',
                        'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E',
                        'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O',
                        'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss',
                        'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
                        'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
                        'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
                        'ÿ' => 'y', 'Ŕ' => 'R', 'ŕ' => 'r',
                    );
                    return strtr($string, $table);
                }
En test, elle semble fonctionner:
Code :
1
2
 
unaccent("bébé tôt"); => "bebe tot"
Seulement, lorsque je l'appelle avec une variable en guise de paramètre dans mon code, elle me retourne la même valeur d'origine:
Code :
1
2
3
 
$s = "bébé tôt";
unaccent($s); => "bébé tôt"
J'ai oublié une étape?

Merci d'avance de votre aide.

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h59   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 216
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 216
Points : 8 594
Points : 8 594
t'as pas Intl ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 17h02   #3
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 671
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 671
Points : 5 404
Points : 5 404
Euh, au hasard : tu n'aurais pas oublié de réaffecter le résultat à la variable ?
Code :
1
2
3
4
5
$s = "bébé tôt";
unaccent($s); 
echo $s; //=> "bébé tôt"
$s = unaccent($s); 
echo $s; //=> "bebe tot"
(php n'utilise pas dans les références sur les chaines, sauf définition explicite)
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 17h06   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 789
Points : 35 789
Il faut passer la variable par référence :
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 08/12/2011, 09h33   #5
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Bonjour à tous et merci pour vos réponses.
Malheureusement, j'ai essayé chacune de vos suggestions et aucune ne fonctionne. Je veux dire que la chaîne renvoyé est la même que celle donnée. C'est comme si ma fonction ne faisait rien!
J'ai même essayé en JS, pareil.
Le plus bizarrre, c'est que hors du contexte du site, la fonction marche nickel!
Exemple, avec phpunit si vous l'avez:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
<?php
class UnaccentTest extends PHPUnit_Framework_TestCase{
 
    function unaccent($string) {
        $table = array(
            'Š' => 'S', 'š' => 's', '&#272;' => 'Dj', '&#273;' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '&#268;' => 'C', '&#269;' => 'c', '&#262;' => 'C', '&#263;' => 'c',
            'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E',
            'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O',
            'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss',
            'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
            'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
            'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
            'ÿ' => 'y', '&#340;' => 'R', '&#341;' => 'r',
        );
 
        return strtr($string, $table);
    }
 
    public function testUnaccent() {
        $s0 = "bébé exprès tôt";
        $s1 = "bebe expres tot";
        $s2 = $this->unaccent($s0);
        $rss = array(
            array($this->unaccent("bébé"), "bebe"),
            array($this->unaccent("tôt le matin"), "tot le matin"),
            array($this->unaccent("Noël"), "Noel"),
            array($this->unaccent("Allez l'OM"), "Allez l'OM"),
            array($this->unaccent("exprès"), "expres"),
            array($this->unaccent("bébé exprès tôt"), "bebe expres tot"),
            array($s2, $s1)
        );
        foreach($rss as $rs){
            $this->assertEquals($rs[0], $rs[1]);
        }
    }
 
}
?>
Or, je remarque que dans le site, nos pages PHP commencent systématiquement avec ceci:
Code :
1
2
 
putenv("NLS_LANG=ENGLISH_UNITED KINGDOM.UTF8");
Ceci peut-il avoir une influence?

Merci d'avance.

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 09h40   #6
Membre actif
 
Femme
Apprenti/ Dev C++
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Apprenti/ Dev C++
Secteur : Finance

Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 175
Points : 175
Possible vu que les anglais n'utilisent pas d'accent mais j'aurais pensé que le programme n'aurait pas du tout reconnu les caractères. Mais à premier abords j'aurai aussi opté pour la réponse de bovino: si tu passe une variable par copie, celle ci n'est pas modifiée dans l'environnement d'origine.
Malinaka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 09h56   #7
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Voici ma fonction remaniée:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
function unaccent(&$string) {
    $table = array(
        'Š' => 'S', 'š' => 's', '&#272;' => 'Dj', '&#273;' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '&#268;' => 'C', '&#269;' => 'c', '&#262;' => 'C', '&#263;' => 'c',
        'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E',
        'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O',
        'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss',
        'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
        'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
        'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
        'ÿ' => 'y', '&#340;' => 'R', '&#341;' => 'r',
    );
 
    return strtr($string, $table);
}
Mais là, encore, le résultat est hélas le même.

En tout cas, merci de vos réponses.

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 10h00   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 789
Points : 35 789
Code :
function unaccent(&$string)

Ce n'est pas dans la déclaration de la fonction qu'il faut préciser ça, ça n'aurait aucun sens, c'est dans l'appel :
Code :
1
2
$s0 = "bébé exprès tôt";
$this->unaccent(&$s0);
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 10h18   #9
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Hello

>Voici une version corrigé (j'espère):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
function unaccent($string) {
            $table = array(
                'Š' => 'S', 'š' => 's', '&#272;' => 'Dj', '&#273;' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '&#268;' => 'C', '&#269;' => 'c', '&#262;' => 'C', '&#263;' => 'c',
                'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E',
                'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O',
                'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss',
                'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
                'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
                'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
                'ÿ' => 'y', '&#340;' => 'R', '&#341;' => 'r'
            );
 
            return strtr($string, $table);
        }
 
$val_comments = isset($_REQUEST[VAR_COMMENTS])?trim($_REQUEST[VAR_COMMENTS]):"";
$val_comments = unaccent(&$val_comments);
Evidemment, le résultat n'est pas celui que j'espère

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 10h20   #10
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 671
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 671
Points : 5 404
Points : 5 404
Citation:
Envoyé par Bovino Voir le message
Ce n'est pas dans la déclaration de la fonction qu'il faut préciser ça, ça n'aurait aucun sens.
Si, si, ça marche :
Citation:
Envoyé par php.net
Vous pouvez passer des variables par référence, de manière à ce que la fonction modifie ces variables. La syntaxe est la suivante :
Code :
1
2
3
4
5
6
7
8
<?php
function foo(&$var) {
  $var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>
Passage par référence
La différence c'est que si on met la référence au niveau de la définition de la fonction, la fonction utilisera toujours des références, sinon la fonction peut fonctionner avec ou sans référence selon l'appel (chuis pas sûre d'être très claire là)
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 13h53   #11
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Bonjour à tous.

Devant malgré tout continuer, j'ai trouvé une alternative en JS, faisant fi des regexps, un comble pour moi, mais ça marche:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.
function noaccent(chaine) {
            var temp = "";
            for(var i=0; i<chaine.length; i++){
                var ci = chaine.charCodeAt(i);
                switch(ci){
                    case 233:
                    case 232:
                    case 234:
                    case 235: temp+=String.fromCharCode(101);
                        break;
                    case 224:
                    case 228:
                    case 226: temp+=String.fromCharCode(97);
                        break;
                    case 244:
                    case 246: temp+=String.fromCharCode(111);
                        break;
                    default: temp+=chaine.charAt(i);
                        break;
                }
            }
            return temp
        }
Néanmoins, j'aurais bien voulu savoir pourquoi en PHP, ça n'a jamais fonctionné.

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h10   #12
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

C'est étrange quand même,
je te mets ma fonction de remplacement, essayes et dis moi si ça gaze :
(elle est prévue pour une classe)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
   /**
    * Remplace les caractères accentués par leur équivalent non accentué
    * Remplace les caractères imbriqués par leur équivalent : AE ae OE oe
    * UTF-8
    * @param string $p
    * @return string
    */
   static function stripAccents($p) {
      if ( ! preg_match('/[\x80-\xff]/', $p)) {
         return $p;
      }
 
      $chr195 = chr(195);
      $chr196 = chr(196);
      $chr197 = chr(197);
 
      $chars = array(
         // Decompositions for Latin-1 Supplement
         $chr195.chr(128) => 'A', $chr195.chr(129) => 'A', $chr195.chr(130) => 'A',  $chr195.chr(131) => 'A',
         $chr195.chr(132) => 'A', $chr195.chr(133) => 'A', $chr195.chr(134) => 'AE', $chr195.chr(135) => 'C',
         $chr195.chr(136) => 'E', $chr195.chr(137) => 'E', $chr195.chr(138) => 'E',  $chr195.chr(139) => 'E',
         $chr195.chr(140) => 'I', $chr195.chr(141) => 'I', $chr195.chr(142) => 'I',  $chr195.chr(143) => 'I',
         $chr195.chr(145) => 'N', $chr195.chr(146) => 'O', $chr195.chr(147) => 'O',  $chr195.chr(148) => 'O',
         $chr195.chr(149) => 'O', $chr195.chr(150) => 'O', $chr195.chr(153) => 'U',  $chr195.chr(154) => 'U',
         $chr195.chr(155) => 'U', $chr195.chr(156) => 'U', $chr195.chr(157) => 'Y',  $chr195.chr(159) => 's',
         $chr195.chr(160) => 'a', $chr195.chr(161) => 'a', $chr195.chr(162) => 'a',  $chr195.chr(163) => 'a',
         $chr195.chr(164) => 'a', $chr195.chr(165) => 'a', $chr195.chr(166) => 'ae', $chr195.chr(167) => 'c',
         $chr195.chr(168) => 'e', $chr195.chr(169) => 'e', $chr195.chr(170) => 'e',  $chr195.chr(171) => 'e',
         $chr195.chr(172) => 'i', $chr195.chr(173) => 'i', $chr195.chr(174) => 'i',  $chr195.chr(175) => 'i',
         $chr195.chr(177) => 'n', $chr195.chr(178) => 'o', $chr195.chr(179) => 'o',  $chr195.chr(180) => 'o',
         $chr195.chr(181) => 'o', $chr195.chr(182) => 'o', $chr195.chr(185) => 'u',  $chr195.chr(186) => 'u',
         $chr195.chr(187) => 'u', $chr195.chr(188) => 'u', $chr195.chr(189) => 'y',  $chr195.chr(191) => 'y',
         // Decompositions for Latin Extended-A
         $chr196.chr(128) => 'A', $chr196.chr(129) => 'a', $chr196.chr(130) => 'A',  $chr196.chr(131) => 'a',
         $chr196.chr(132) => 'A', $chr196.chr(133) => 'a', $chr196.chr(134) => 'C',  $chr196.chr(135) => 'c',
         $chr196.chr(136) => 'C', $chr196.chr(137) => 'c', $chr196.chr(138) => 'C',  $chr196.chr(139) => 'c',
         $chr196.chr(140) => 'C', $chr196.chr(141) => 'c', $chr196.chr(142) => 'D',  $chr196.chr(143) => 'd',
         $chr196.chr(144) => 'D', $chr196.chr(145) => 'd', $chr196.chr(146) => 'E',  $chr196.chr(147) => 'e',
         $chr196.chr(148) => 'E', $chr196.chr(149) => 'e', $chr196.chr(150) => 'E',  $chr196.chr(151) => 'e',
         $chr196.chr(152) => 'E', $chr196.chr(153) => 'e', $chr196.chr(154) => 'E',  $chr196.chr(155) => 'e',
         $chr196.chr(156) => 'G', $chr196.chr(157) => 'g', $chr196.chr(158) => 'G',  $chr196.chr(159) => 'g',
         $chr196.chr(160) => 'G', $chr196.chr(161) => 'g', $chr196.chr(162) => 'G',  $chr196.chr(163) => 'g',
         $chr196.chr(164) => 'H', $chr196.chr(165) => 'h', $chr196.chr(166) => 'H',  $chr196.chr(167) => 'h',
         $chr196.chr(168) => 'I', $chr196.chr(169) => 'i', $chr196.chr(170) => 'I',  $chr196.chr(171) => 'i',
         $chr196.chr(172) => 'I', $chr196.chr(173) => 'i', $chr196.chr(174) => 'I',  $chr196.chr(175) => 'i',
         $chr196.chr(176) => 'I', $chr196.chr(177) => 'i', $chr196.chr(178) => 'IJ', $chr196.chr(179) => 'ij',
         $chr196.chr(180) => 'J', $chr196.chr(181) => 'j', $chr196.chr(182) => 'K',  $chr196.chr(183) => 'k',
         $chr196.chr(184) => 'k', $chr196.chr(185) => 'L', $chr196.chr(186) => 'l',  $chr196.chr(187) => 'L',
         $chr196.chr(188) => 'l', $chr196.chr(189) => 'L', $chr196.chr(190) => 'l',  $chr196.chr(191) => 'L',
         $chr197.chr(128) => 'l', $chr197.chr(129) => 'L', $chr197.chr(130) => 'l',  $chr197.chr(131) => 'N',
         $chr197.chr(132) => 'n', $chr197.chr(133) => 'N', $chr197.chr(134) => 'n',  $chr197.chr(135) => 'N',
         $chr197.chr(136) => 'n', $chr197.chr(137) => 'N', $chr197.chr(138) => 'n',  $chr197.chr(139) => 'N',
         $chr197.chr(140) => 'O', $chr197.chr(141) => 'o', $chr197.chr(142) => 'O',  $chr197.chr(143) => 'o',
         $chr197.chr(144) => 'O', $chr197.chr(145) => 'o', $chr197.chr(146) => 'OE', $chr197.chr(147) => 'oe',
         $chr197.chr(148) => 'R', $chr197.chr(149) => 'r', $chr197.chr(150) => 'R',  $chr197.chr(151) => 'r',
         $chr197.chr(152) => 'R', $chr197.chr(153) => 'r', $chr197.chr(154) => 'S',  $chr197.chr(155) => 's',
         $chr197.chr(156) => 'S', $chr197.chr(157) => 's', $chr197.chr(158) => 'S',  $chr197.chr(159) => 's',
         $chr197.chr(160) => 'S', $chr197.chr(161) => 's', $chr197.chr(162) => 'T',  $chr197.chr(163) => 't',
         $chr197.chr(164) => 'T', $chr197.chr(165) => 't', $chr197.chr(166) => 'T',  $chr197.chr(167) => 't',
         $chr197.chr(168) => 'U', $chr197.chr(169) => 'u', $chr197.chr(170) => 'U',  $chr197.chr(171) => 'u',
         $chr197.chr(172) => 'U', $chr197.chr(173) => 'u', $chr197.chr(174) => 'U',  $chr197.chr(175) => 'u',
         $chr197.chr(176) => 'U', $chr197.chr(177) => 'u', $chr197.chr(178) => 'U',  $chr197.chr(179) => 'u',
         $chr197.chr(180) => 'W', $chr197.chr(181) => 'w', $chr197.chr(182) => 'Y',  $chr197.chr(183) => 'y',
         $chr197.chr(184) => 'Y', $chr197.chr(185) => 'Z', $chr197.chr(186) => 'z',  $chr197.chr(187) => 'Z',
         $chr197.chr(188) => 'z', $chr197.chr(189) => 'Z', $chr197.chr(190) => 'z',  $chr197.chr(191) => 's'
      );
      return strtr($p, $chars);
   }
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h24   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 216
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 216
Points : 8 594
Points : 8 594
je mets la mienne aussi :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// PHP 5.3
$str = 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ';
$str = Normalizer::normalize($str, Normalizer::FORM_KD);
$str = preg_replace('/\p{Mn}+/u', '', $str);
 
echo $str;
//aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY
 
// PHP 5.4
$str = 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ';
$trans = Transliterator::create('NFD; [:Nonspacing Mark:] Remove; NFC');
$str =  $trans->transliterate($str);
 
echo $str;
//aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/12/2011, 01h15   #14
Candidat au titre de Membre du Club
 
Homme
Inscription : octobre 2007
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2007
Messages : 10
Points : 10
Points : 10
Code :
1
2
3
4
5
6
7
 
// PHP 5.4
$str = 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ';
$trans = Transliterator::create('NFD; [:Nonspacing Mark:] Remove; NFC');
$str =  $trans->transliterate($str);
 
echo $str;
On apprend vraiment tous les jours. Bravo et merci
foberken est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h31.


 
 
 
 
Partenaires

Hébergement Web