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 :

Comportement anormal d'une fonction


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Comportement anormal d'une fonction
    Bonjour,
    Afin de générer une url suivant le titre d'un article j'ai écrit cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function GenerationUrl($text)
    {
    	$text = iconv('UTF-8', 'ISO-8859-1//TRANSLIT//IGNORE',$text);
    	$text = strtr($text,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
    	$text = preg_replace('/\b\w{1,3}\b/', '', $text);
    	$text = preg_replace('/\W+/', '-', $text);
    	$text = trim($text, '-');
     
    	return $text;
    }
    Mais je rencontre deux problèmes :
    Le premier est une notice d'erreur concernant la fonction iconv()
    Notice: iconv() [function.iconv]: Detected an illegal character in input string in ......

    La deuxième encore plus étrange le retour de cette fonction pour une utilisation identique.
    J'explique. Dans mon formulaire de création d'article, il y a un champ "url". L'utilisateur saisie les mots clés qu'il souhaite dans son url et via un appel ajax de la fonction, il voie en live se que donnera son url.
    Ensuite dans cette même page, j'utilise cette même fonction au moment d'enregistrer l'article en base.
    Mais voila le résultat de sortie est différent :
    Imaginons que dans le champ url j'écrive : Ceci est un autre d'ajout de catégorie
    Avec l'appel ajax ca me donne : ceci-autre-ajout-categorie
    A l'enregistrement en basse : ceci-autre-ajout

    J'ai testé en appelant la fonction a la validatin du formulaire sans enregistrement en base même constat : ceci-autre-ajout
    pourtant mon $_POST envoie bien la chaine complète Ceci est un autre d'ajout de catégorie

    Je ne comprend pas d'ou vient le pb.
    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Autre découverte :
    Comme je le disais l'appel via ajax me renvoie la "bonne" url mais pas a la validation du formulaire.
    J'ai commenté la ligne avec iconv() et l,a l'url via ajax n'est plus bonne (ceci-autre-ajout-cata-gorie) alors que l'url suite a validation du form est quand a elle ok (Ceci-autre-ajout-categorie).

    J'y comprend vraiment rien, comment une même fonction peux t'elle avoir deux comportement différent.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ok trouvé.
    pour l'ajax j'utilise jquery et json.
    json me retournait une url en utf-8 de ce type : Ceci+est+un+autre+d%27ajout+de+cat%C3%A9gori
    J'ai donc rajouté dans le post du form un utf8_encode() pour afficher le même résultat.

Discussions similaires

  1. comportement anormal d'une condition >=
    Par gregory314 dans le forum VB.NET
    Réponses: 2
    Dernier message: 21/01/2015, 13h51
  2. Réponses: 2
    Dernier message: 30/01/2012, 15h48

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