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 :

Un retour chariot dans une variable [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 103
    Points
    103
    Par défaut Un retour chariot dans une variable
    Bonjour,

    Je met du code HTML dans une variable et j'aurais souhaiter y ajouter des retours chariot/tabulation devant/derrière mes balises HTML pour avoir un code source final qui affiche plus d'une ligne.

    J'ai essayé des trucs à base de \n et de chr(13) avec des ',', des' " ' etc.
    Mais bon, ça m'affiche des "\n" et des "chr(13)" au lieu de les "traduire".

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $var .=  '<tr><td>' . implode('</td><td>', $array) . '</td></tr>';
    D'avance merci!

  2. #2
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Tu as essayé d'ajouter simplement "\n\r" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var="blablabla<B>blablabla</B>\n\r";

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Les caractères comme \n , \r,\t,... ne sont pas interprétés dans les simples quotes('\n') mais il faut utiliser des doubles quotes ("\n").

    A+.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 103
    Points
    103
    Par défaut
    Merci pour vos contributions, j'ai oublié de me faire avertir par mails pour les réponses du post et mon projet ayant été en stand-by cet été, je ne retrouve ce post qu'aujourd'hui

    Pour être un peu plus clair, je ne suis pas codeur de métier, mais j'aime ça et j'essaye d'apprendre sur le tas. Par conséquent je m'excuse d'avance si mes pratiques vous semblent triviales (voir vous font carrément bondir)
    Dans ma démarche actuelle j'essaye de structurer mon code pour clairement séparer PHP & HTML. Ce qui veux dire que j'essaye de ranger le HTML généré dans des variables, mais je me retrouve avec des source bien crado avec des lignes interminable
    Et comme je reste débutant, mes sources doivent êtres claires pour que je m'y retrouve un minimum sinon, je m'en sort plus

    J'ai effectivement mis la main sur la doc qui explique les caractères échappé en "double quotes" (http://md.php.net/manual/fr/language....syntax.double) et pour prendre un exemple simple (sans concaténation de variable) ça fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $retour = "<table>\n";
    $retour .= "	<tr>\n";
    $retour .= "		<th>D&eacute;panneur</th>\n";
    $retour .= "		<th>Code<br />poste</th>\n";
    $retour .= "		<th>Site</th>\n";
    $retour .= "		<th>D&eacute;but</th>\n";
    $retour .= "		<th>Fin</th>\n";
    $retour .= "		<th>&Eacute;cart horaire<br />(dur&eacute;e du poste)</th>\n";
    $retour .= "		<th>Nbre<br />ITV</th>\n";
    $retour .= "		<th>Nbre<br />R&eacute;evac</th>\n";
    $retour .= "		<th>Anomalie</th>\n";
    $retour .= "	</tr>\n";
    (Je suis pas sur que ce soit une bonne pratique quand même...)

    En revanche dès que je souhaite utiliser des variables ou des fonctions, je n'arrive pas à m'en sortir sans les simple quotes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var .=  '<tr><td>' . implode('</td><td>', $array) . '</td></tr>';
    ou encore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for ($nombre_de_lignes = 0; $nombre_de_lignes < $ligne_poste; $nombre_de_lignes++){
    	$ligne_suivante = $nombre_de_lignes + 1;
    	$retour .= '	<tr>\"\n\"';
    	$retour .= '		<td title="' . $ligne_tblx_poste_[$nombre_de_lignes]['ID'] . '">' . $ligne_tblx_poste_[$nombre_de_lignes]['NOM'] . ' ' . $ligne_tblx_poste_[$nombre_de_lignes]['PRENOM'] . '</td>';
    	$retour .= '		<td>' . $ligne_tblx_poste_[$nombre_de_lignes]['CODE_POSTE'] . '</td>';
    	$retour .= '		<td>' . $ligne_tblx_poste_[$nombre_de_lignes]['SITE'] . '</td>';
    	$retour .= '		<td>le ' . $ligne_tblx_poste_[$nombre_de_lignes]['DATE_DEBUT'] . ' &agrave; ' . $ligne_tblx_poste_[$nombre_de_lignes]['HeureD'] . '</td>';
    	$retour .= '		<td>' . $ligne_tblx_poste_[$nombre_de_lignes]['HeureF'] . '</td>';
    	$retour .= '						<td title="' . $ligne_tblx_poste_[$nombre_de_lignes]['Duree'] . '"> ' . $ligne_tblx_poste_[$nombre_de_lignes]['Depass'] . '</td>';
    	$retour .= '		<td><a href="' . $ligne_tblx_poste_[$nombre_de_lignes]['Url_itv'] . '">' . $ligne_tblx_poste_[$nombre_de_lignes]['Nbre_itv'] . '</a></td>';
    	$retour .= '		<td><a href="' . $ligne_tblx_poste_[$nombre_de_lignes]['Url_reevac'] . '">' . $ligne_tblx_poste_[$nombre_de_lignes]['Nbre_reevac'] . '</a></td>';
    	$retour .= '		<td>' . $ligne_tblx_poste_[$nombre_de_lignes]['ANOMALIES'] . '</td>';
    	$retour .= "</tr>\n";
    }
    Voilà ou j'en suis à ce jour... Remarques, critiques & conseils sont les bienvenu

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,
    Je ne vois pas où est le problème,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    $retour .= "\t<td title=\"" . $ligne_tblx_poste_[$nombre_de_lignes]['ID'] . "\">" . $ligne_tblx_poste_[$nombre_de_lignes]['NOM'] . ' ' . $ligne_tblx_poste_[$nombre_de_lignes]['PRENOM'] . "</td>\n";
    ...
    A+.

  6. #6
    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 : 48
    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,

    Pour t'aider grandement dans ce genre de présentation il existe une syntaxe particulière nommée HEREDOC et depuis PHP 5.3 il y a le complément NOWDOC.

    Pour ton code cela donne :
    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
    $retour = <<<SC
    <table>
    	<tr>
    		<th>D&eacute;panneur</th>
    		<th>Code<br />poste</th>
    		<th>Site</th>
    		<th>D&eacute;but</th>
    		<th>Fin</th>
    		<th>&Eacute;cart horaire<br />(dur&eacute;e du poste)</th>
    		<th>Nbre<br />ITV</th>
    		<th>Nbre<br />R&eacute;evac</th>
    		<th>Anomalie</th>
    	</tr>
    </table>
    SC;
    Tu as tous tes retours à la ligne et tabulations
    Allez zou bon courage

  7. #7
    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 : 48
    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
    Allez parce que c'est toi,

    voici ton code pour ta boucle for avec l'injection des données des tableaux (notation HEREDOC)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $retour = <<<SC
    	<tr>
    		<td title="{$ligne_tblx_poste_[$nombre_de_lignes]['ID']}">{$ligne_tblx_poste_[$nombre_de_lignes]['NOM']} {$ligne_tblx_poste_[$nombre_de_lignes]['PRENOM']}</td>
    		<td>{$ligne_tblx_poste_[$nombre_de_lignes]['CODE_POSTE']}</td>		
    		<td>{$ligne_tblx_poste_[$nombre_de_lignes]['SITE']}</td>
    		<td>le {$ligne_tblx_poste_[$nombre_de_lignes]['DATE_DEBUT']} &agrave; {$ligne_tblx_poste_[$nombre_de_lignes]['HeureD']}</td>
    		<td>{$ligne_tblx_poste_[$nombre_de_lignes]['HeureF']}</td>
    		<td title="{$ligne_tblx_poste_[$nombre_de_lignes]['Duree']}">{$ligne_tblx_poste_[$nombre_de_lignes]['Depass']}</td>
    		<td><a href="{$ligne_tblx_poste_[$nombre_de_lignes]['Url_itv']}">{$ligne_tblx_poste_[$nombre_de_lignes]['Nbre_itv']}</a></td>
    		<td><a href="{$ligne_tblx_poste_[$nombre_de_lignes]['Url_reevac']}">{$ligne_tblx_poste_[$nombre_de_lignes]['Nbre_reevac']}</a></td>
    		<td>{$ligne_tblx_poste_[$nombre_de_lignes]['ANOMALIES']}</td>		
    	</tr>
    SC;

  8. #8
    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

    HEREDOC n'est pas si familier que ça.

    Un autre moyen :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $retour = '
    	<tr>
    		<td title="'.$ligne_tblx_poste_[$nombre_de_lignes]['ID'].'">'.$ligne_tblx_poste_[$nombre_de_lignes]['NOM'].' '.$ligne_tblx_poste_[$nombre_de_lignes]['PRENOM'].'</td>
    		<td>'.$ligne_tblx_poste_[$nombre_de_lignes]['CODE_POSTE'].'</td>				
    	</tr>
    ';
    Ou alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour = '<td>'.$ligne_tblx_poste_[$nombre_de_lignes]['NOM'].'</td>'."\n";
    Ou encore : (La constante Php PHP_EOL de fin de ligne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour = '<td>'.$ligne_tblx_poste_[$nombre_de_lignes]['NOM'].'</td>'.PHP_EOL;
    Avec tout ça, on aura fait le tour de la question.
    Plus difficile sera le choix.

  9. #9
    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 : 48
    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
    Je suis bien d'accord que la notation HEREDOC n'est pas si connue que ça mais son très gros avantage c'est que c'est petit moteur de template à elle toute seule. Notation HEREDOC avec un codage tout objet et ben ça fait des merveilles

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 103
    Points
    103
    Par défaut
    Rhooo...!

    Merci à vous

    Une fois de plus je refait surface loooooongtemps après, mais vos réponses n'en étaient pas moins importante pour moi

    Donc en regardant "vite fait" c'est la solution .PHP_EOL qui me séduit le plus. Mais je ne manquerait pas de regarder les autres avec un peu de soins les prochains temps.

    Je ne vous cache pas que j'ai déjà vu passé au loin la syntaxe HEREDOC, et que de là ou je suis elle fait un peu peur

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2011, 10h01
  2. Réponses: 1
    Dernier message: 11/01/2006, 11h58
  3. Retour chariot appliquée à une variable
    Par denis finch dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2005, 12h07
  4. [Tableaux] Retour Chariot dans une boucle
    Par tchoukapi dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2005, 14h45
  5. [Javascript]Comment faire un retour chariot dans une chaîne
    Par aragorns dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/09/2005, 11h24

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