furious Gontran Posté 23 Novembre 2004 Posté 23 Novembre 2004 (modifié) Voila... Je fais mon tableau sur une page html simple Puis je remplace les " par des ' et je rajoute ." et " devant et derriere chaques lignes: echo"<TABLE WIDTH=626 BORDER=0 align='left' CELLPADDING=0 CELLSPACING=0>"." <TR bgcolor='#FF0000'> " ." <TD height='54' COLSPAN=7 valign='top'> <IMG SRC='images/Dates_r1_c1.gif' WIDTH=20 HEIGHT=54 ALT=''></TD>" ." <TD width='2'> </TD>" ." </TR>" ." <TR> " [...] ." <td><img src='../Programme/images/spacer.gif' alt='' width='54' height='1'></td>" ." <td></td>" ." </tr>" ."</TABLE>"; Je n'aispas mis tout le code mais il y en as une centaine de ligne.. Le tout est copié dans un php, entouré par <?php et ?> et mes pages me retournent souvent de suites de " ." et mon tableau en vrac. Y'a t'il mieux pour afficher des mises en pages HTML complexes par du php ?? Modifié 23 Novembre 2004 par furious Gontran
Anonymus Posté 23 Novembre 2004 Posté 23 Novembre 2004 echo <<<EOF code html complexe, avec plein de " ' ' " \ / EOF;
furious Gontran Posté 23 Novembre 2004 Auteur Posté 23 Novembre 2004 Merci bien, je teste ca... (tiens, c'est pas dans nexen...)
Dash Posté 23 Novembre 2004 Posté 23 Novembre 2004 (modifié) Merci bien, je teste ca... (tiens, c'est pas dans nexen...) <{POST_SNAPBACK}> extrait de nexen.net : 5.2.5.1 Syntaxe Une chaîne peut être spécifiée de trois manières différentes : guillemets simples guillemets doubles syntaxe HereDoc Modifié 23 Novembre 2004 par Dash
Findel Posté 24 Novembre 2004 Posté 24 Novembre 2004 pourquoi ne pas directement repasser "hors parseur" et y revenir quand tu aura vraiment besoin de php: ?><TABLE WIDTH=626 BORDER=0 align='left' CELLPADDING=0 CELLSPACING=0> <TR bgcolor='#FF0000'> <TD height='54' COLSPAN=7 valign='top'> <IMG SRC='images/Dates_r1_c1.gif' WIDTH=20 HEIGHT=54 ALT=''></TD> <TD width='2'> </TD> </TR> <TR> [...] <td><img src='../Programme/images/spacer.gif' alt='' width='54' height='1'></td> <td></td> </tr></TABLE><?php // la suite du php
Jan Posté 24 Novembre 2004 Posté 24 Novembre 2004 Cette question en évoque une autre que je me suis souvent posée. Vaut-il mieux faire appel au parseur x fois pour lui faire faire seulement les tâches qui sont de son ressort, ou ne l'invoquer qu'une seule fois quitte à lui faire faire en plus du php, des simples "echo" de code html?
furious Gontran Posté 24 Novembre 2004 Auteur Posté 24 Novembre 2004 (modifié) Merci Findel... Forcement plus c'est simple moins on y pense... Je crois que je me suis perdu sur le long et aride chemin du php. (Mode "Kung Fu" ON) _AT_Dash Ah ouais forcement, moi je cherchais une propriete de echo ou un truc dans l'genre. Modifié 24 Novembre 2004 par furious Gontran
Findel Posté 24 Novembre 2004 Posté 24 Novembre 2004 _AT_Jan > Je ne sais pas exactement en terme de perf, mais je me doute que de ne pas passer par le parseur doit forcément accelerer et si je me souvien bien , switcher parseur/hors parseur ne ralentit pas beaucoup Par contre, à relire, c'est toujours désagréable les switch à répétition; Pour ma part, j'ai fait le choix suivant : petit bout de html à écrire => echo long bout de html à écrire (plusieurs lignes) => passer hors parseur Quand à l'écho en lui même, préférez l'utilisation des virgules plutot que les points pour l'écriture du contenu : http://findel.free.fr/index.php?2004/10/04...s-de-caracteres
Anonymus Posté 24 Novembre 2004 Posté 24 Novembre 2004 Findel : T'as été pris de cours ? Il n'y a pas encore d'articles Jan : Perso, j'utilise la méthode suivante : très long html, hors parser, sinon en écho. Je me rend compte que je suis constamment obligé de remettre en forme des morceaux de html, qui auraient du être directement en echo, ce qui fait que je passe peut etre un peu plus de temps à mettre en forme pour le php, mais après c'est beaucoup plus rapide. Pour ce qui est de la rapidité, générer du 'hors parser' oblige le programme à renvoyer une partie du code au navigateur, alors qu'il aurait peut etre préféré attendre un peu. Lui commander ses sorties, c'est se priver de la gestion des sorties de php. De plus, en cas de problème, s'il n'y a rien entre 2 balises ?> et <? il ne risque pas d'y avoir de sorties html. En bref, j'ai souvent affaire à du code qui commence comme ceci il y a <?echo $lignes;?> lignes dans le tableau qui se poursuit comme ceci : il y a <?=$lignes?> lignes dans le tableau et qui finit (excedé) comme ceci : <?echo "il y a ".$lignes." lignes dans le tableau";?> Ce qui fait que je passe en général assez rapidement à la troisième. D'ailleurs, après la correction, on s'apercoit que s'il n'y a qu'une ligne, alors "lignes" doit être au singulier. Avec la première et la seconde méthode, c'est pénible à modifier, avec la troisième, c'est.. gateau. <?echo "il y a ".(($lignes>1)?$lignes." lignes":$lignes."ligne")." dans le tableau";?> Anonymus.
Dan Posté 24 Novembre 2004 Posté 24 Novembre 2004 <?phpecho "il y a ". $lignes . " ligne" . ($lignes>1) ? "s": "" . " dans le tableau";?> C'est pas mieux ainsi ?
furious Gontran Posté 24 Novembre 2004 Auteur Posté 24 Novembre 2004 Si l'affichage est subordonné a un if on ne pas quitter les parseur cependant (non ?)...
Jan Posté 24 Novembre 2004 Posté 24 Novembre 2004 Dan, Joli furious Gontran, Tu peux très bien faire: <?phpif (condition) {?>condition vraie<?php}else {?>condition fausse<?php}?>
martin Posté 25 Novembre 2004 Posté 25 Novembre 2004 Pour répondre à ces questions un bon bouquin : "PHPAvancé" dans la collection pc poche de Micro application. mon conseil : utilisez une fonction pour compter le temps d'affichege de vos pages, afin de voir quelle méthode est la plus rapide. Apparement, la concaténation par virgule de chaines en simples quote ' serait pas mal, mais avec l'envoi du buffer en une seule fois à la fin du traitement avec ob_flush... Enfin avant d'en arriver là, commencons par optimiser les requetes sql, et tout un tas de ptits détails simples à simplifier !
Anonymus Posté 25 Novembre 2004 Posté 25 Novembre 2004 Pour le décompte du temps : <?phpfunction getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $time_start = getmicrotime(); //PAGE$time_end = getmicrotime();$time = $time_end - $time_start;echo $time;?> Trivial, mais sortie tout droit du manuel Anonymus.
furious Gontran Posté 25 Novembre 2004 Auteur Posté 25 Novembre 2004 (modifié) BOUHEUH Pourquoi quandc'est moi qui essaye ca merdouille tout le temps ??? Je place ceci avant mon tableau: <?phpif isset($_GET['Article']) { $Article= $_GET['Article']; }else{ $Article= "articledefaut"; } echo $Article; ?> Dans une des cases de mon tableau se trouve ceci: <?php echo "<iframe src='articles/zoom/".$Article.".htm' name='cadrarticle' width='510' height='430' align='left' vlign='top'" ."scrolling='yes' marginheight='0' marginwidth='0' frameborder='0'></iframe>"; ?> et dans une autre ceci: <?php echo "test"; ?> Et pourtant, meme mon dernier test tout bete ne fonctionne pas. Je teste mes pages avec Dream, wamp est lancé au cas ou. Ma page et bien enregistré en .php... Tout bien, quoi ! Ca viens d'où? Modifié 25 Novembre 2004 par furious Gontran
furious Gontran Posté 25 Novembre 2004 Auteur Posté 25 Novembre 2004 (modifié) Personne ne sais ou n'as de piste ??? J'ais verifié l'HTML, le PHP... Pas d'erreurset pourtant je me retrouve bloqué par un truc de base alors que tout est bon... Les dieux de l'info sont ils contre moi ? Meme si je fais : <html><head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> hjsdklhjsdfkljklqsdf<br> <?php echo"php<br>"; ?> grgerghaerge </body> </html> Juste pour tester, j'obtiens: hjsdklhjsdfkljklqsdf"; ?> grgerghaerge Le probleme viens t'il de mon ordi ?? Modifié 25 Novembre 2004 par furious Gontran
furious Gontran Posté 25 Novembre 2004 Auteur Posté 25 Novembre 2004 <html><head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> hjsdklhjsdfkljklqsdf<br> <?php echo"php<br>"; ?> grgerghaerge </body> </html> Voila... Une idée ?
furious Gontran Posté 25 Novembre 2004 Auteur Posté 25 Novembre 2004 Lorsque je parlais des dieux de l'info contre moi je n'avais pas totalement tort, en fait... Il m'as suffit de reinstaller dream pourque ca remarche... Et pour une fois c'est cool c'est pas mon faible niveau de prog qui est en cause.... LOL !!!
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant