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 :

utf8_encode avec eregi_replace


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut utf8_encode avec eregi_replace
    Bonjour,

    Je veux afficher par exemple cette phase "Plasma coin carré" au lieu de la phase complète "Test de la télé Plasma coin carré", en supprimant grâce au code le bout de phrase "Test de la télé".

    Voici le code que j'ai mis en place. Il fonction très bien par exemple pour la phrase "Console de salon" au lieu de "Test de la nouvelle Console de salon".

    Mais c'est le "é" de télé qui n'est pas reconnu dans le code et du coup il affiche la phrase complète au lieu de la phrase raccourcie. Quelqu'un peut m'aider à corriger ce code , merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo utf8_encode(eregi_replace("test de la télé|test de la nouvelle","",$list_video[titre])); ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    str_replace suffit pour ce que tu fais.
    les fonctions eregi sont de plus obsolète.
    et travaille directement dans le bon encodage plutôt que d'encoder.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $cherche = array('test de la télé', 'test de la nouvelle');
    $replace = '';
    echo str_replace($cherche, $replace, $list_video['titre']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    ça ne fonctionne pas.. Dans la base de donnée le titre est en latin1_swedish_ci. Me conseilles tu de la passer en UTF8 ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    alors j'ai sélectionné UTF8_general_ci pour la table en question depuis Mysql mais ça n'a pas l'air d'avoir changé grand chose.

    Sinon pour l instant comme je sais pas comment intégrer ton code modifié, j'avais besoin de faire apparaitre les titres en majuscules sans les accents pour faire apparaitre genre "TEST DE LA TELE PLASMA COIN CARRE"

    Alors voici ou j'en suis du code mais dans le cas présent il affiche quand même "TEST DE LA TELE" au lieu de l enlever de la phrase, toujours à cause de ces accents.

    A partir de mon code peux tu m aider à reformuler correctement pour intégrer ton code ? merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h3 href="<?php echo link_video($list_video['video_id']); ?>" title="<?php echo utf8_encode($list_video['titre']); ?>">
    <?php
    echo strtoupper(remplace_accents(utf8_encode(eregi_replace("test de la télé|test des télés|test de la console","",$list_video[titre])))); ?><br />
    </h3>

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut déjà que tu règles ton encodage :
    http://j-willette.developpez.com/tut...-site-en-utf8/

    pour UTF8 la fonction est mb_strtoupper()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    je vois que pour changer en utf8 il faut exécuter ce script:
    "ALTER TABLE videos CHANGE titre CHARACTER SET utf8 COLLATE interclassement" car c est la colonne "titre" que je veux modifier en utf8 et pas toute la table "videos". Mais ça ne fonctionne pas; il indique une erreur de syntaxe au moment d'exécuter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec eregi_replace
    Par Yoshio dans le forum Langage
    Réponses: 7
    Dernier message: 05/02/2006, 00h51
  2. [RegEx] Probleme avec eregi_replace
    Par silouane dans le forum Langage
    Réponses: 2
    Dernier message: 03/02/2006, 09h21
  3. [Tableaux] Problème avec utf8_encode()
    Par RapidJul dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 18h22
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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