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 :

cours php : test d'un exemple


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Points : 71
    Points
    71
    Par défaut cours php : test d'un exemple
    Dans le cours php de Guillaume Rossolini, VI-A-1, dans l'exemple suivant :

    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
    <?php
     
    $body = "test";
    $charset = "ISO-8859-1"; // ou UTF-8
     
    ?>
    <?xml version="1.0" encoding="<?php echo $charset; ?>"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
    <head>
        <title><?php echo $title; ?></title>
        <meta
            http-equiv="content-type"
            content="text/html; charset=<?php echo $charset; ?>" />
    </head>
    <body>
    <?php echo $body; ?>
    </body>
    </html>
    Le code ne fonctionne que sans la ligne (testé aussi avec UTF-8) ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="<?php echo $charset; ?>"?>

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourrais-préciser le problème que tu rencontres ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour à tous,

    Effectivement le code génère une erreur :
    Parse error: syntax error, unexpected T_STRING in /home/test.php on line 7
    En revanche, ce code :
    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
    <?php
     
    $body = "test";
    $charset = "ISO-8859-1"; // ou UTF-8
     
    echo '<?xml version="1.0" encoding="'.$charset.'"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
    <head>
        <title>'.$title.'</title>
        <meta http-equiv="content-type" content="text/html; charset='.$charset.'" />
    </head>
    <body>
    '.$body.'
    </body>
    </html>';
    ?>
    Ne retourne aucune erreur apparente et affiche correctement la page.

    Ce code-ci non plus :
    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
    <?php
     
    $body = "test";
    $charset = "ISO-8859-1"; // ou UTF-8
    echo '<?xml version="1.0" encoding="'.$charset.'"?> ';
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
    <head>
        <title><?php echo $title; ?></title>
        <meta http-equiv="content-type" content="text/html; charset=<?php echo $charset; ?>" />
    </head>
    <body>
    <?php echo $body; ?>
    </body>
    </html>
    Il semble y avoir des problèmes de parsage
    Dernière modification par Invité ; 27/08/2010 à 11h24.

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    C'est peut être $title qui serait non initialisé qui provoquerait une erreur, non ?

    En tout cas, je n'avais pas cette ligne en question, je l'ai rajouté par curiosité, et maintenant ça y ressemble comme 2 gouttes d'eaux du code que tu as, du tuto.
    Aucune erreur.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    $body = "test";
    $charset = "ISO-8859-1"; // ou UTF-8
    $title = "Test title";
     
    ?>
    Renvoie la même erreur.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Le problème se situe au niveau de la déclaration
    Si la directive enable_short_tags est activée, PHP s'emmêle les pinceaux
    C'est pourquoi il est souvent conseillé de désactiver cette directive.

    Sinon le problème peut être résolu en plaçant cette première ligne dans le code PHP. Mais c'est pas ce qu'on fait de plus propre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<?xml version... ?>'; 
    ?>
    <!DOCTYPE...

  7. #7
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par Petibidon
    Si la directive enable_short_tags est activée, PHP s'emmêle les pinceaux
    Je vient d'essayer, ça provoque effectivement une erreur (parse_error).
    C'est short_open_tag la directive, mais on s'comprend

    Je trouve ça bizarre quand même, car je ne vois pas le rapport.

    Aussi, je suis entièrement d'accord du faite que c'est pas zen d'activer cette directive, ça ne sert à rien, suffit de bien respecter les choses. (tout le temps faire <?php)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Je trouve ça bizarre quand même, car je ne vois pas le rapport.
    Si j'ai bien compris, cette directive autorise l'utilisation des balises courtes :
    Le code situé entre ces balises sera interprété comme du PHP d'où la parse error C'est ce qu'a expliqué Petibidon

  9. #9
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par Karzoff
    Le code situé entre ces balises sera interprété comme du PHP d'où la parse error C'est ce qu'a expliqué Petibidon
    A bien oui, suis-je bête.
    Bien vu

    Bon, et bien voilà une bonne raison de ne pas activer cette directive, et surtout ne plus coder comme des sagouins
    (Je déconne )

  10. #10
    Membre régulier Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Points : 71
    Points
    71
    Par défaut
    J'arrive un peu tard...mais puisque la solution a été trouvée, je m'en réjouis!
    J'ai mis le short_open_tag sur Off : c'était bien ça.
    Merci pour tous ceux qui dégainent plus vite que leur ombre!

    Et merci pour le lien vers les cours et tutoriels de programmation PHP çà à l'air totalement génial : http://php.developpez.com/cours/

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

Discussions similaires

  1. [Dates] [php]Test de dates
    Par samjung dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2006, 17h00
  2. [XSL -PHP] Test si vide... et première valeur inférieure
    Par mamat- dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 06/08/2005, 18h57

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