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 :

echo échappement ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Avatar de Skyxia
    Homme Profil pro
    Ingénieur réseau & sécurité
    Inscrit en
    Mai 2016
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur réseau & sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2016
    Messages : 359
    Points : 627
    Points
    627
    Billets dans le blog
    3
    Par défaut echo échappement ?
    Bonjour à tous,

    Voici mon problème :

    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
     
        <?php function writeItem($result){
                  echo '
    		<tr class="item" style="max-height: 25px;">
    			<td style="width: 115px; text-align: center; padding-right: 5px;">'.isset($result['data']['items']['description']) ?: '' .'</td>
    			<td style="width: 80%; text-align: left; padding-right: 15px; border-left: 1px solid #27aeb1;">'.isset($result['data']['items']['description']) ? wordwrap($result['data']['items']['description'], 40, "\n", true) : '' .'</td>
    			<td style="text-align: center; width: 75px; padding-right: 5px; border-left: 1px solid #27aeb1;">'.isset($result['data']['items']['quantity']) ? $result['data']['items']['quantity'] : '' .'</td>
    			<td style="text-align: center; width: 90px;  padding-right: 5px; border-left: 1px solid #27aeb1;">'.isset($result['data']['items']['unit']) ? $result['data']['items']['unit'] : '' . '</td>
    			<td style="text-align: center; width: 95px; padding-right: 5px; padding-left: 5px; border-left: 1px solid #27aeb1;">'.isset($result['data']['items']['price']) ? $result['data']['items']['price'] : '' .'</td>
    			<td style="text-align: center; width: 125px; padding-right: 5px; border-left: 1px solid #27aeb1;">'.isset($result['data']['items']['discount']) ? $result['data']['items']['discount'] : '' .'</td>
    			<td style="text-align: center; width: 180px; padding-right: 5px; border-left: 1px solid #27aeb1;">'.isset($result['data']['items']['total_ht']) ? $result['data']['items']['total_ht'] : '' .'</td>
    			<td style="text-align: center; width: 90px; padding-right: 5px; border-left: 1px solid #27aeb1;">'.isset($result['data']['items']['VAT']) ? $result['data']['items']['VAT'] : '' .'</td>
    		</tr>
    	    ';
    }
        ?>
    La première ligne de mon <td> s'affiche correctement mais les autres s'affichent en vertes dans mon PHPStorm, je pense que je dois "échapper" (si je dis pas de bêtises, car je débute) dans mon code les endroits ou j'avais mis un ' car j'utilise justement un ' pour mon echo. J'ai cherché comment faire mais tout ce que je test ne marche pas avec "\"..

    Quelqu'un peut-il m'aider à comprendre comment bien mettre cette syntaxe ? Je sais que le problème se situe à chaque fin de <td> lorsqu'il y a :
    Merci d'avance,

    Cordialement, Skyxia.

    Siberattaque : Attaque informatique par un hackeur sibérien.


    Je vous invite à consulter mes billets dans mon blog :
    Cisco IOS & Sécurité basique
    Audit réseaux dans un SI

    [Smartphone] [Android] 8 conseils pour vous sécuriser un minimum !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    le plus simple (et lisible) : sortir le code HTML du code PHP
    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
    <?php function writeItem($result){
    ?>
    		<tr class="item" style="max-height: 25px;">
    			<td style="width: 115px; text-align: center; padding-right: 5px;"><?php echo isset($result['data']['items']['description']) ?: ''; ?></td>
    			<td style="width: 80%; text-align: left; padding-right: 15px; border-left: 1px solid #27aeb1;"><?php echo isset($result['data']['items']['description']) ? wordwrap($result['data']['items']['description'], 40, "\n", true) : ''; ?></td>
    			<td style="text-align: center; width: 75px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?php echo isset($result['data']['items']['quantity']) ? $result['data']['items']['quantity'] : ''; ?></td>
    			<td style="text-align: center; width: 90px;  padding-right: 5px; border-left: 1px solid #27aeb1;"><?php echo isset($result['data']['items']['unit']) ? $result['data']['items']['unit'] : ''; ?></td>
    			<td style="text-align: center; width: 95px; padding-right: 5px; padding-left: 5px; border-left: 1px solid #27aeb1;"><?php echo isset($result['data']['items']['price']) ? $result['data']['items']['price'] : ''; ?></td>
    			<td style="text-align: center; width: 125px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?php echo isset($result['data']['items']['discount']) ? $result['data']['items']['discount'] : ''; ?></td>
    			<td style="text-align: center; width: 180px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?php echo isset($result['data']['items']['total_ht']) ? $result['data']['items']['total_ht'] : ''; ?></td>
    			<td style="text-align: center; width: 90px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?php echo isset($result['data']['items']['VAT']) ? $result['data']['items']['VAT'] : ''; ?></td>
    		</tr>
    <?php
    }
    ?>

  3. #3
    Membre confirmé
    Avatar de Skyxia
    Homme Profil pro
    Ingénieur réseau & sécurité
    Inscrit en
    Mai 2016
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur réseau & sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2016
    Messages : 359
    Points : 627
    Points
    627
    Billets dans le blog
    3
    Par défaut
    Il est vrai que ça règle tous les problèmes

    Merci je n'y avais pas pensé !

    Siberattaque : Attaque informatique par un hackeur sibérien.


    Je vous invite à consulter mes billets dans mon blog :
    Cisco IOS & Sécurité basique
    Audit réseaux dans un SI

    [Smartphone] [Android] 8 conseils pour vous sécuriser un minimum !

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    par pitié, en plus de sortir le HTML du code PHP, il faut aussi sortir la mise en forme du HTML et la remplacer par du CSS.
    Voici une version plus lisible (mis à part la mise en forme qui vient tout polluer) :
    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
    <?php
     
    function writeItem($result)
    {
        $isset = function($k) use ($result)
        {
            return (isset($result['data']['items'][$k])) ? htmlspecialchars($result['data']['items'][$k], ENT_QUOTES, 'utf-8') : '';
        };
    ?>
        <tr class="item" style="max-height: 25px;">
            <td style="width: 115px; text-align: center; padding-right: 5px;"><?= ($isset('description') !== '') ? '1' : ''; ?></td>
            <td style="width: 80%; text-align: left; padding-right: 15px; border-left: 1px solid #27aeb1;"><?= wordwrap($isset('description'), 40, "<br>", true) ?></td>
            <td style="text-align: center; width: 75px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?= $isset('quantity') ?></td>
            <td style="text-align: center; width: 90px;  padding-right: 5px; border-left: 1px solid #27aeb1;"><?= $isset('unit') ?></td>
            <td style="text-align: center; width: 95px; padding-right: 5px; padding-left: 5px; border-left: 1px solid #27aeb1;"><?= $isset('price') ?></td>
            <td style="text-align: center; width: 125px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?= $isset('discount') ?></td>
            <td style="text-align: center; width: 180px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?= $isset('total_ht') ?></td>
            <td style="text-align: center; width: 90px; padding-right: 5px; border-left: 1px solid #27aeb1;"><?= $isset('VAT') ?></td>
        </tr>
    <?php
    }  
    ?>
    A noter que PHPStorm gère parfaitement les syntaxes multiples au sein d'un même fichier PHP. Si t'es accro aux syntaxes heredoc et nowdoc, tu peux tranquillement les conserver au sein de ton fichier PHP, l'autocompletion va s'adapter automatiquement en fonction des balises identifiants ces blocs.

    Au fait, t'es sûr de toi pour ce bout de code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo isset($result['data']['items']['description']) ?: ''; ?>

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

Discussions similaires

  1. Comment ecrire sur la meme ligne avec la commane ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 24/11/2015, 10h06
  2. Comment aller a la ligne avec la commande ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 23/06/2004, 18h11
  3. probleme d' echo dans un batch
    Par zorian dans le forum Windows
    Réponses: 16
    Dernier message: 18/05/2004, 18h21
  4. [HARDWARE]Problème d'écho audio
    Par Tostaki dans le forum Composants
    Réponses: 5
    Dernier message: 08/12/2003, 00h38
  5. Envoyer un message icmp (Echo Request)
    Par ovdz dans le forum Développement
    Réponses: 5
    Dernier message: 19/06/2003, 15h14

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