IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Intl Normalizer retourne null


Sujet :

Langage PHP

  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Intl Normalizer retourne null
    Salut,

    J'essai d'utiliser Normalizer::normalize() sous windows en php 5.3.8 mais j'ai toujours le droit à un retour null.

    Les dll icudt36.dll, icuin36.dll, icuio36.dll .... sont à la racine de mon dossier de PHP qui est lui même dans le PATH de windows (7).

    Le code testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $str = "àáâãäçèéêëìíîïñòóôõöùúûüýÿ";
    var_dump(Normalizer::normalize($str)); // null
    L'idée étant d'essayer de supprimer des accents de manière un peu élégante. Le comportement de iconv étant apparament assez aléatoire en fonction du système et des lib installé , ça ne semble pas être une solution fiable.

    Une idée ? Peut être me manque il une configuration pour Intl ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Membre expérimenté Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Orne (Basse Normandie)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Par défaut
    http://php.net/manual/fr/normalizer.normalize.php
    tu fais ton bout de code dans un objet? parce que pour un appel procédural c'est pas cette syntaxe...
    sinon pour supprimer les accents y a le fameux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
    'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par Doopeijii Voir le message
    http://php.net/manual/fr/normalizer.normalize.php
    tu fais ton bout de code dans un objet? parce que pour un appel procédural c'est pas cette syntaxe...
    sinon pour supprimer les accents y a le fameux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
    'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
    Que ce soit la version objet ou procédurale la syntaxe est la même , le second paramètre est pas obligatoire.

    Et c'est justement ce type de solution que je veux éviter quand je parle de "manière un peu élégante"
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre expérimenté Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Orne (Basse Normandie)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Par défaut
    Citation Envoyé par grunk Voir le message
    Que ce soit la version objet ou procédurale la syntaxe est la même , le second paramètre est pas obligatoire.
    Euh... Je crois bien voir normalizer_normalize pour la procédural non? Après, ça doit fonctionner même avec la syntaxe POO ^^

    Et c'est justement ce type de solution que je veux éviter quand je parle de "manière un peu élégante"
    Oui, c'est bien ce que je pensais mais c'est quand même très répandu et efficace :p

  5. #5
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut une piste possible
    J'ai un wamp sous windows 7 64 bit et j'ai tester ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $coll = new Collator('en_US');
    $al   = $coll->getLocale(Locale::ACTUAL_LOCALE);
    echo "Actual locale: $al\n";
     
    $formatter = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
    echo $formatter->format(1234567);
    ?>
    trouvé sur php.net : http://www.php.net/manual/fr/intl.examples.basic.php
    et j'ai l'erreur suivante : Warning: Collator::__construct() [collator.--construct]: collator_create: unable to open ICU collator in D:\Dev_web\wamp\www\test.php on line 2
    apres une longue recherche sur google, j'ai trouvé ce post sur developpez.net :
    http://www.developpez.net/forums/d11...n-fonctionnel/ mais sans réponse et sur un autre forum en anglais la solution consiste à copier les icu*.dll dans C:\Windows/system32 ou C:\Windows\SysWOW64 ou dans le bin d'apache ce que j'ai testé mais sans succès....en espérant t'avoir aidé...dsl

Discussions similaires

  1. Findcontrol retourne null
    Par Kiwi_violet dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/04/2007, 12h21
  2. TTF_OpenFont() retournant NULL
    Par FabaCoeur dans le forum SDL
    Réponses: 4
    Dernier message: 11/04/2007, 16h30
  3. GetDC retourne NULL Oo
    Par Groove dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2007, 17h46
  4. Réponses: 3
    Dernier message: 02/03/2007, 11h41
  5. opérateur + dans SELECT retourne null ?
    Par david_chardonnet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/01/2007, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo