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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] Include avec type de caractère


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut [Forum] Include avec type de caractère
    Bonjour,

    Je développe présentement un site avec le script de forum MyBB.
    Par défaut les pages de MyBB sont générées en UTF-8.

    Je dois inclure pour mon site, plus de 90 pages html générées automatiquement par un programme de simulation.

    Le problème que j'ai c'est que l'intégration crée des problème de caratères.
    Par exemple :

    Sami Lepistö becomes Sami Lepist�

    Est-ce que quelqu'un à une idée géniale ?

  2. #2
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Salut, vérifie si tu as bien mis comme charset sur tes pages UTF-8 et non pas ISO-machin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    Au pire applique utf8_encode() ou utf8_decode() suivant l'encodage actuel de tes pages pour voir si ça te corrige ton problème.

    @+
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    C'est ça mon problème, il n'y a rien dans les pages générées sur le type de caratères.

    Comment je ferais pour encoder la page ?

    Voici le script que j'utilise pour faire l'include :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // On définit le tableau contenant les pages autorisées
    // ----------------------------------------------------
     
    $pageOK = array(
     
    	'qcfl' => '../includes/news/news0.html',
    	'ana' => '../includes/news/news1.html',
    	'atl' => '../includes/news/news2.html'
     
    );
     
     
    // On teste que le paramètre d'url existe et qu'il est bien autorisé
    // -----------------------------------------------------------------
     
    ob_start();
      if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
         include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
      } else {
         include('../includes/error.html');   // Page par défaut quant elle n'existe pas dans le tableau
      }
    $var_nouvelles = ob_get_contents();
    ob_end_clean();
    Je suis un peu débutant en PHP.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 220
    Points : 15 511
    Points
    15 511
    Par défaut
    Citation Envoyé par Theberge43
    Comment je ferais pour encoder la page ?
    il suffit de mettre le code htm que genova t'a donné dans la balises "head" de ta page

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    C'est exactement ce que je neux pas faire ...
    Les pages à inclure sont générées automatiquement et 2 fois / semaine.
    Je changerai pas 90+ fichiers 2 fois par semaine.

    Je voudrais les encoder automatiquement par une fonctione quelconque.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 220
    Points : 15 511
    Points
    15 511
    Par défaut
    Citation Envoyé par Theberge43
    C'est exactement ce que je neux pas faire ...
    Les pages à inclure sont générées automatiquement et 2 fois / semaine.
    Je changerai pas 90+ fichiers 2 fois par semaine.

    Je voudrais les encoder automatiquement par une fonctione quelconque.
    il suffit que tu mettes cette ligne dans le fichier qui génére la balise "head" de tes pages

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Ok je vais détailler un peu plus, car je crois que ce n'est pas clair.
    J'ai un programme de simulation qui me génère 90+ pages html ... je n'ai aucun pouvoir sur ce que le programme génère.

    Voici le début du code d'une page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <html>
    <HEAD>
    <title>Eastside Hockey Manager - HTML Output</title>
    </HEAD>
    <body bgcolor=white background="default_back.jpg" text=black link=blue vlink=blue>
    <center>
    <a name="begin">
    <font face="" size=3>
    <a name="begin">
     <table width=400 cellpadding=0 cellspacing=0 border=0>
      <tr>
       <td align=center height=67></td>
       <td align=center height=67>TEAM PAGES</td>
     
       <td align=center height=67></td>
      </tr>
     </table>
    <br><br>
    <h3><font size=3><u><font face=" Arial, Helvetica, sans - serif">San Jose Sharks</u></font></h3>
    <font size=3><br></font>
    <br>
    <br>
    <table width=600 cellpadding=1 cellspacing=0 border=1 bordercolor=#000000
    Je n'ai aucun accès au code généré ... ce que je veux (si c'est possible) c'est une focntionne externe au fichier html qui va convertir mes pages en UTF-8 au moment de faire l'include.

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 220
    Points : 15 511
    Points
    15 511
    Par défaut
    ah d'accord
    dans ce cas je te propose ce code alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    // On définit le tableau contenant les pages autorisées
    // ----------------------------------------------------
     
    $pageOK = array(
     
        'qcfl' => '../includes/news/news0.html',
        'ana' => '../includes/news/news1.html',
        'atl' => '../includes/news/news2.html'
     
    );
     
     
    // On teste que le paramètre d'url existe et qu'il est bien autorisé
    // -----------------------------------------------------------------
     
      if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
         $fichier = $pageOK[$_GET['page']];   // Nous appelons le contenu central de la page
      } else {
         $fichier = '../includes/error.html';   // Page par défaut quant elle n'existe pas dans le tableau
      }
     
    $var_nouvelles = file_get_contents($fichier);
     
    $var_nouvelles = strtr($var_nouvelles, array('<title>' => 
        '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>'));

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Ok, ça marche comme un charme, le code s'insere très bien.
    Mais ça ne règle pas mon problème ... quelqu'un à une idée !?

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Vous ne pouvez pas vous-mêmes utiliser UTF-8 pour le script qui inclue ou modifier ce "générateur" ?

    Il existe des utilitaires (au sens programme) comme iconv qu'on trouve généralement de base sur les distributions Linux ce qui vous permettrait de convertir l'ensemble de vos fichiers.


    Julp.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Ben je pourrais toujours, mais ce que je ne comprends pas, c'est que le script fonctionne voilà le résultat lorsque ma page charge :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html lang="fr">
    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Eastside Hockey Manager - HTML Output</title>
    </HEAD>
    <body bgcolor=white background="default_back.gif" text=black link=blue vlink=blue>
    <center><br><br>
    J'ai demandé en parallèle sur le site de MyBB pour tenter de savoir si le problème n'est pas du au forum.

    Je suis aussi sur un localhost (sur un WAMP server) est-ce que ça peut jouer dans l'efficacité de l'encodage !?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Bon j'ai trouvé par moi-même ... les accents étaient hard codés dans mes fichiers ...

    é au lieu de &eacute;

    J'ai donc fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $var_nouvelles = strtr($var_nouvelles, array('<title>' => 
        '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>',
    'à' => '&agrave;', 
    'À' => '&Agrave;', 
    'á' => '&aacute;', 
    'Á' => '&Aacute;', 
    'â' => '&acirc;', 
    'Â' => '&Acirc;', 
    'ã' => '&atilde;', 
    'Ã' => '&Atilde;', 
    'ä' => '&auml;', 
    'Ä' => '&Auml;', 
    'å' => '&aring;', 
    'Å' => '&Aring;', 
    'æ' => '&aelig;', 
    'Æ' => '&AElig;', 
    'è' => '&egrave;', 
    'È' => '&Egrave;', 
    'é' => '&eacute;', 
    'É' => '&Eacute;', 
    'ê' => '&ecirc;', 
    'Ê' => '&Ecirc;', 
    'ë' => '&euml;', 
    'Ë' => '&Euml;', 
    'ì' => '&igrave;', 
    'Ì' => '&Igrave;', 
    'í' => '&iacute;', 
    'Í' => '&Iacute;', 
    'î' => '&icirc;', 
    'Î' => '&Icirc;', 
    'ï' => '&iuml;', 
    'Ï' => '&Iuml;', 
    'ò' => '&ograve;', 
    'Ò' => '&Ograve;', 
    'ó' => '&oacute;', 
    'Ó' => '&Oacute;', 
    'ô' => '&ocirc;', 
    'Ô' => '&Ocirc;', 
    'õ' => '&otilde;', 
    'Õ' => '&Otilde;', 
    'ö' => '&ouml;', 
    'Ö' => '&Ouml;', 
    'ø' => '&oslash;', 
    'Ø' => '&Oslash;', 
    'ù' => '&ugrave;', 
    'Ù' => '&Ugrave;', 
    'ú' => '&uacute;', 
    'Ú' => '&Uacute;', 
    'û' => '&ucirc;', 
    'Û' => '&Ucirc;', 
    'ü' => '&uuml;', 
    'Ü' => '&Uuml;', 
    'ñ' => '&ntilde;', 
    'Ñ' => '&Ntilde;', 
    'ç' => '&ccedil;', 
    'Ç' => '&Ccedil;' ));

  13. #13
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Salut,
    un simple htmlentities() aurait remplacé tous les éùè et autre par leurs entités HTML (&eactue; etc ..).

    @+
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Et comment je fais pour l'utiliser ?

    J'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
         $fichier = $pageOK [ $_GET['page'] ] [0];   // Nous appelons le contenu central de la page
      } else {
         $fichier = '../includes/error.html';   // Page par défaut quant elle n'existe pas dans le tableau
      }
     
    $var_nouvelles = file_get_contents($fichier);
     
    $var_nouvelles = strtr($var_nouvelles, array('<title>' => 
        '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>'));
     
    $var_nouvelles = htmlentities($var_nouvelles);
    Mais pas page est rendu toute croche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <table border="0" cellspacing="1" cellpadding="4" class="tborder">
    <thead>
    <tr>
    <td class="thead"><strong>Nouvelles du New Jersey</strong></td>
    </tr>
    <tbody>
    <tr>
     
    <td class="pages_qcfl"><p align="center">&lt;script language=&quot;JavaScript&quot;&gt;
    &lt;!--
    function mes(nro) {
       window.status = nro;
    }
    // --&gt;
    &lt;/script&gt;
    &lt;html&gt;
    &lt;HEAD&gt;
    &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;&lt;title&gt;Eastside Hockey Manager - HTML Output&lt;/title&gt;
     
    &lt;/HEAD&gt;
    &lt;body bgcolor=white background=&quot;default_back.gif&quot; text=black link=blue vlink=blue&gt;
    &lt;center&gt;&lt;br&gt;&lt;br&gt;
    &lt;font face=&quot;&quot; size=1&gt;
    &lt;a name=&quot;begin&quot;&gt;
     
    &lt;table width=550 bgcolor=#FFFFFF&gt;&lt;tr&gt;&lt;td&gt;
    &lt;img src=&quot;C:\Documents and Settings\Marc Laberge\My Documents\Eastside Hockey Manager\pictures\papers\paper_NJ.jpg&quot; Width=535 Height=100 border=0&gt;&lt;br&gt;
    &lt;table width=535 border=0&gt;
     &lt;tr&gt;
      &lt;td align=left bgcolor=#FFFFFF width=17%&gt;&lt;font face=&quot; Verdana, Arial, Helvetica, sans - serif&quot; size=2 color=#000000&gt;&lt;b&gt;14-2-2008 &lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;td bgcolor=#FFFFFF width=83%&gt;&lt;font face=&quot; Verdana, Arial, Helvetica, sans - serif&quot; size=2 color=#000000&gt;&lt;a href=&quot;file://C|/Program Files/Eastside Hockey Manager/profile.html&quot; onMouseOver='window.status=&quot;2770&quot;; return true' onMouseOut='window.status=&quot;No_id_here_now&quot;; return true'&gt;Jonathan Tremblay&lt;/a&gt; agrees on a contract.&lt;/font&gt;&lt;/td&gt;
     
     &lt;/tr&gt;
     &lt;tr&gt;

Discussions similaires

  1. [Forum] Problème avec Forum/include/functions.php
    Par BaleinedesSables71 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 22/06/2012, 11h49
  2. [phpBB] Inclure un forum phpBB avec include()
    Par jiojioforever dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 15/12/2006, 14h57
  3. [prog dynamique]Constructeur avec type primitif
    Par -=Spoon=- dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2004, 11h33
  4. Probleme avec type de donnees
    Par kevinss dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 16h42
  5. Requete avec chaine de caractère commence par
    Par jazzes_dean dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/08/2004, 14h07

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