mise en page du code...

mise en page du code... - PHP - Programmation

Marsh Posté le 28-01-2004 à 22:14:32    

Je voudrai savoir si il est mieux de faire  
 

Code :
  1. echo'<table width="100%">';
  2. echo' <tr>';
  3. echo'  <td id="titre">'.TIMESTAMP.'</td>';
  4. echo'  <td id="titre">'.ELAPSED.'</td>';
  5. echo'  <td id="titre">'.CLIENT.'</td>';
  6. echo'  <td id="titre">'.IDENT.'</td>';
  7. echo'  <td id="titre">'.ACTION.'</td>';
  8. echo'  <td id="titre">'.SIZE.'</td>';
  9. echo'  <td id="titre">'.METHOD.'</td>';
  10. echo'  <td id="titre">'.URL.'</td>';
  11. echo'  <td id="titre">'.HIERARCHY_FROM.'</td>';
  12. echo'  <td id="titre">'.CONTENT_TYPE.'</td>';


 
ou

Code :
  1. echo'<table width="100%">
  2. <tr>
  3. <td id="titre">'.TIMESTAMP.'</td>
  4. <td id="titre">'.ELAPSED.'</td>
  5. <td id="titre">'.CLIENT.'</td>
  6. <td id="titre">'.IDENT.'</td>
  7. <td id="titre">'.ACTION.'</td>
  8. <td id="titre">'.SIZE.'</td>
  9. <td id="titre">'.METHOD.'</td>
  10. <td id="titre">'.URL.'</td>
  11. <td id="titre">'.HIERARCHY_FROM.'</td>
  12. <td id="titre">'.CONTENT_TYPE.'</td>';


 
Je trouve la 1ere solution plus lisible mais une fois le code converti en html si on affiche la source on a tout le code sur une ligne au lieu de l'avoir bien affiché... (tjs avec la 1ere solution)
 
Vous faites comment de votre côté ??

Reply

Marsh Posté le 28-01-2004 à 22:14:32   

Reply

Marsh Posté le 28-01-2004 à 22:16:08    

jutilise la premiere solution avec des '\n' a la fin
 
mais ca m'interesse


Message édité par neogally le 28-01-2004 à 22:16:21

---------------
Battle Alita Angel
Reply

Marsh Posté le 28-01-2004 à 22:18:56    

Code :
  1. <table width="100%">
  2.   <tr>
  3.    <td id="titre"> <?= TIMESTAMP ?></td>
  4.    <td id="titre"><?= ELAPSED ?></td>
  5.    <td id="titre"><?= CLIENT ?></td>
  6.    <td id="titre"><?= IDENT ?></td>
  7.    <td id="titre"><?= ACTION ?></td>
  8.    <td id="titre"><?= SIZE ?></td>
  9.    <td id="titre"><?= METHOD ?></td>
  10.    <td id="titre"><?= URL ?></td>
  11.    <td id="titre"><?= HIERARCHY_FROM ?></td>
  12.    <td id="titre"><?= CONTENT_TYPE ?> </td>


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 28-01-2004 à 22:21:24    

d'accord avec toi kadreg mais regardes la suite du code... (j'aurai du la mettre dés le début)
 

Code :
  1. $file = fopen("log.log", "r" ); /* Ouverture du fichier */
  2.  while ($line = fgetcsv($file,1000, " " )) {
  3.   $line[0] = strftime("%d-%m-%Y @ %Hh%M" , $line[0]); /* date Unix (secondes depuis le 1er Janvier 1970)  vers date compréhensible */
  4.   $line[4] = $line[4] / 1024; /* Conversion de octets à Ko */
  5.   $line[4] = round($line[4] , 2); /* Arrondit le nombre à 2 décimales */
  6. echo' <tr>';
  7. echo'  <td id="data">'.$line[0].'</td>';
  8. echo'  <td id="data">'.$line[1].' '.MS.'</td>';
  9. echo'  <td id="data">'.$line[2].'</td>';
  10. echo'  <td id="data">'.$line[7].'</td>';
  11. echo'  <td id="data">'.$line[3].'</td>';
  12. echo'  <td id="data">'.$line[4].' '.SIZE_FORMAT.'</td>';
  13. echo'  <td id="data">'.$line[5].'</td>';
  14. echo'  <td id="data">'.$line[6].'</td>';
  15. echo'  <td id="data">'.$line[8].'</td>';
  16. echo'  <td id="data">'.$line[9].'</td>';
  17. echo' </tr>';
  18.  };
  19. echo '</table>';


 
ça va être chiant surtout pour la boucle si je suis ta méthode.

Reply

Marsh Posté le 28-01-2004 à 22:26:03    

neogally a écrit :

jutilise la premiere solution avec des '\n' a la fin
 
mais ca m'interesse


 
ton \n tu le mets à quel niveau ?? parceque si je fais

Code :
  1. echo'<td id="titre">'.TIMESTAMP.'</td>'; \n


j'ai une erreur et si je fais

Code :
  1. echo'<td id="titre">'.TIMESTAMP.'</td> \n';


Il m'affiche le \n en texte dans la page.

Reply

Marsh Posté le 28-01-2004 à 22:31:53    

>Il m'affiche le \n en texte dans la page.  
J'ai pas lu ton sujet mais sur ce pb c'est qu'il faut mettre des " et pas des ' sinon le \n n'est pas interprété, pareil pour les variables..

Reply

Marsh Posté le 28-01-2004 à 22:35:12    

Oui en effet je viens d'y penser avant de lire ta réponse mais c'est encore plus chiant car il faudra mettre des \ devant tous les " comme

Code :
  1. echo"<td id=\"titre\">TIMESTAMP</td> \n";

Reply

Marsh Posté le 28-01-2004 à 22:37:55    

kadreg a écrit :

Code :
  1. <table width="100%">
  2.   <tr>
  3.    <td id="titre"> <?= TIMESTAMP ?></td>
  4.    <td id="titre"><?= ELAPSED ?></td>
  5.    <td id="titre"><?= CLIENT ?></td>
  6.    <td id="titre"><?= IDENT ?></td>
  7.    <td id="titre"><?= ACTION ?></td>
  8.    <td id="titre"><?= SIZE ?></td>
  9.    <td id="titre"><?= METHOD ?></td>
  10.    <td id="titre"><?= URL ?></td>
  11.    <td id="titre"><?= HIERARCHY_FROM ?></td>
  12.    <td id="titre"><?= CONTENT_TYPE ?> </td>




[+1]

Reply

Marsh Posté le 28-01-2004 à 22:38:12    

et bah tu fais une concaténation stout

Reply

Marsh Posté le 28-01-2004 à 23:02:31    

J'ai lu quelques docs et j'ai trouvé que la façon <?= TEXTE; ?> était la meilleur donc pour ça +1. Mais maintenant comment je fais pour utiliser cette méthode dans ma boucle ???

Reply

Marsh Posté le 28-01-2004 à 23:02:31   

Reply

Marsh Posté le 29-01-2004 à 00:00:28    

je vais peut etre jouer mon gros boulay mais c'est quoi ces variables en majuscules sans $ ? des variables d'environnement ? c'est pt etre con mais je connais pas ...  :sweat:

Reply

Marsh Posté le 29-01-2004 à 00:01:09    

Code :
  1. <?PHP
  2. $file = fopen("log.log", "r" ); /* Ouverture du fichier */
  3.     while ($line = fgetcsv($file,1000, " " )) {
  4.        $line[0] = strftime("%d-%m-%Y @ %Hh%M" , $line[0]); /* date Unix (secondes depuis le 1er Janvier 1970)  vers date compréhensible */
  5.        $line[4] = $line[4] / 1024; /* Conversion de octets à Ko */
  6.        $line[4] = round($line[4] , 2); /* Arrondit le nombre à 2 décimales */
  7. ?>
  8.     <tr>
  9.      <td id="data"><? =$line[0];?></td>
  10.      <td id="data"><? =$line[1];?>MS</td>
  11.      <td id="data"><? =$line[2];?></td>
  12.      <td id="data"><? =$line[7];?></td>
  13.      <td id="data"><? =$line[3];?></td>
  14.      <td id="data"><? =$line[4];?>SIZE_FORMAT</td>
  15.      <td id="data"><? =$line[5];?></td>
  16.      <td id="data"><? =$line[6];?></td>
  17.      <td id="data"><? =$line[8];?></td>
  18.      <td id="data"><? =$line[9];?></td>
  19.     </tr>
  20. <?PHP
  21.     }
  22. ?>
  23.   </table>


Message édité par chriscool007 le 29-01-2004 à 00:07:07
Reply

Marsh Posté le 29-01-2004 à 00:05:09    

ou alors :  
 

Code :
  1. echo <<<HTML
  2. <tr>
  3.     <td id="data">$line[0]</td>
  4.     <td id="data">$line[1] MS</td>
  5.     <td id="data">$line[2]</td>
  6.     <td id="data">$line[7]</td>
  7.     <td id="data">$line[3]</td>
  8.     <td id="data">$line[4] SIZE_FORMAT</td>
  9.     <td id="data">$line[5]</td>
  10.     <td id="data">$line[6]</td>
  11.     <td id="data">$line[8]</td>
  12.     <td id="data">$line[9]</td>
  13. </tr>
  14. HTML;

Reply

Marsh Posté le 29-01-2004 à 00:06:08    

seb-belfort a écrit :

je vais peut etre jouer mon gros boulay mais c'est quoi ces variables en majuscules sans $ ? des variables d'environnement ? c'est pt etre con mais je connais pas ...  :sweat:  


ce sont des constantes définies par l'utilisateur  :)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 29-01-2004 à 02:06:55    

Ah tient moi je faisait toujours  
<?=$var; ?>
:??:


---------------
GENERATION MOBILES : Imprimantes GSM & logos/sonneries/jeux
Reply

Marsh Posté le 29-01-2004 à 02:34:02    

Moi je suis plutôt du genre XSL joli qui s'applique à la volée sur un flux XML généré par le prog.

Reply

Marsh Posté le 29-01-2004 à 08:00:09    

Moi j'instancie un bean avec un <jsp:useBean>; puis j'affiche ses propriétés avec un <jsp:getProperty>, et c'est ce bean qui est chargé d'aller faire la lecture du CSV.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 29-01-2004 à 08:34:00    

ok donc si j'ai bien compris c'est mieux d'ouvrir et fermer à chaque fois la balise php (<?php ?> ) plutot que de faire plein d' echo ou un seul grqnd echo.
 
Pour les textes en majuscules sans $ en effet c'est des constantes mqis j'ai changé avec des variables car j'ai lu que c'était plus rapide d'utiliser ces dernières.

Reply

Marsh Posté le 29-01-2004 à 10:08:24    

Ca permet aussi qd tu bosses avec un graphiste, de lui permettre de voir le code HTML sous Dreamweaver par exemple.
En fait en externatlisant le HTML du PHP, ça lui facilite énormément le boulot.

Reply

Marsh Posté le 29-01-2004 à 14:44:12    

Et dans l'autre sens aussi ça facilite le boulot.
 
Tu peux aisément repartir d'un bloc de HTML static et remettre tes valeurs dedans sans modifier le code.

Reply

Marsh Posté le 29-01-2004 à 16:56:15    

Voilà j'ai suivi vos conseils et ça fonctionne impec.
 
Sinon comme je l'ai dis plus haut, il parait que les define() sont plus longs à "charger" que des variables mais je ne sais pas dans quelle version de php ni si ça a été règlé.
 
Quelqu'un peut m'en dire plus ?? (si les define sont plus lent ça n'a aucun intéret)

Reply

Marsh Posté le 29-01-2004 à 17:30:20    

cinezone a écrit :

Voilà j'ai suivi vos conseils et ça fonctionne impec.
 
Sinon comme je l'ai dis plus haut, il parait que les define() sont plus longs à "charger" que des variables mais je ne sais pas dans quelle version de php ni si ça a été règlé.
 
Quelqu'un peut m'en dire plus ?? (si les define sont plus lent ça n'a aucun intéret)

T'es pas assez grand pour tester toi même ? :pfff:

Reply

Marsh Posté le 29-01-2004 à 17:45:49    

Sinon, je reste bouche bée devant ce qui est plus rapide en PHP par rapport à ce qui est moins rapide... En effet, je trouve ça relativement contradictoire avec son fonctionnement. Certainement le résultat d'une grosse optimisation de ce qui est régulièrement utilisé en dépis de ce qui l'est moins. En effet, généralement, on a plutôt le comportement inverse :
 
<?
...
...
...
...
...
...
?>
 
=> Le moteur PHP se lance une unique fois pour tout le bloc, et traîte les variables directement.
 
<?=...?>
<?=...?>
<?=...?>
<?=...?>
<?=...?>
<?=...?>
 
=> Le moteur PHP est initialisé à chaque bloc, et doit en permanance backuper et récupérer les variables de travail.
 
Du moins, c'est le fonctionnement de l'ASP (dont le fonctionnement est logiquement "le même" )
Microsoft préconise pour l'ASP d'utiliser au minimum des blocs éparses d'ASP, et préfère qu'un maximum d'instructions/traîtements soient faites au même endroit.
 
Ensuite, on a les constantes... Habituellement, une constante est de taille fixe, de type connu, et ne peux pas évoluer. Alors qu'en PHP tout comme en ASP, les variables sont de type variable (on peut passer d'une chaîne à un int puis une date sans se soucier de rien), et de taille variable (le symple transtypage suffit à changer la taille). A partir de là, on pourrait s'attendre à des traîtements bien plus complexes, et une interprétation bien plus "sécurisée" des variables que des constantes, puisqu'on connaît à l'avance le comportement d'une constante (elle risque pas de faire péter quoi que ce soit) alors qu'une variable peut partir en live, provoquer des erreurs de type, etc.
 
Du coup, je trouve ça vraiment paradoxal le fait que le PHP soit plus rapide pour traîter ces deux trucs qui pourtant à la base sont bien moins complexes à éxécuter... !
Pas vous ?

Reply

Marsh Posté le 29-01-2004 à 17:53:29    

*Syl* a écrit :

T'es pas assez grand pour tester toi même ? :pfff:  


 
Je voudrai bien mais je fais comment pour tester ?

Reply

Marsh Posté le 29-01-2004 à 17:53:57    

en marquant tes temps d'éxecution [:petrus75]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 29-01-2004 à 18:10:35    

kadreg a écrit :

Code :
  1. <table width="100%">
  2.   <tr>
  3.    <td id="titre"> <?= TIMESTAMP ?></td>
  4.    <td id="titre"><?= ELAPSED ?></td>
  5.    <td id="titre"><?= CLIENT ?></td>
  6.    <td id="titre"><?= IDENT ?></td>
  7.    <td id="titre"><?= ACTION ?></td>
  8.    <td id="titre"><?= SIZE ?></td>
  9.    <td id="titre"><?= METHOD ?></td>
  10.    <td id="titre"><?= URL ?></td>
  11.    <td id="titre"><?= HIERARCHY_FROM ?></td>
  12.    <td id="titre"><?= CONTENT_TYPE ?> </td>




 
+12


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 29-01-2004 à 20:25:14    


 
Tcheu directement +12 ça doit vraiment être une très bonne solution :lol:


Message édité par cinezone le 29-01-2004 à 20:25:47
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed