2010-03-22 4 views
1

Est-ce une bonne méthode pour enregistrer tous les index dans une variable, puis en faire l'écho? par exemple"echo" dans les fonctions ou "echo" toutes les pages?

<?php 
    $txt='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> 
    <link rel="stylesheet" type="text/css" href="css/style.css"/> 
    <title>Untitled Document</title> 
    </head> 

    <body> 
    <div class="wrapper"> 
     <div class="header"> 
     <h2>'.heaf_func().'</h2> 
     </div> 
     <div class="content">content</div> 
     <div class="footer">footer</div> 
    </div> 
    </body> 
    </html>'; 
    echo $txt; 

?> 

Répondre

2

Généralement, non. Si vous devez effectuer une mise en mémoire tampon de sortie, utilisez simplement the output buffering API. Même si vous devez récupérer votre sortie pour y effectuer un post-traitement, vous pouvez le faire en utilisant ob_get_contents. Ce ne sera pas un gros problème sur la plupart des pages, mais sur de grandes pages ou sous une lourde charge de serveur, vous devriez utiliser le support de tampon de sortie car il est mieux optimisé pour ce que vous essayez d'accomplir.

Généralement, en regardant une méthode telle que celle que vous envisagez, demandez-vous "qu'est-ce que cela me gagne?" Votre exemple ci-dessus est clairement trivial, mais à moins que vous ne prévoyiez de post-traiter vos résultats, qu'est-ce que cela vous apporte?

EDIT:

Je l'ai utilisé à la fois les approches PHP en XML et XML en PHP dans divers projets. Mon expérience est que sur un projet de taille significative, le PHP-in-XML (ou HTML, mais j'essaie de toujours générer du XML ou du XHTML) finit par devenir un mauvais code spaghetti qui devient difficile à maintenir, alors que le XML-in L'approche PHP finit par se transformer en un tas de code de manipulation de chaînes que vous ne voulez pas non plus conserver.

En règle générale, je recommande d'utiliser un framework MVC (MVVM, MVP, etc. - à vous) pour chaque application Web, quelle que soit la langue. Si elle est appliquée correctement, la complexité supplémentaire de la structure est plus que compensée par la modularité et la facilité de maintenance et d'extensibilité que vous obtenez. Si vous ne vous sentez pas le besoin ou le désir de cibler un cadre (bien que, encore une fois, je le recommande vivement), je suis généralement ces règles:

  1. Autant que possible, limiter PHP en XML à l'inclusion simple valeurs. Par exemple, <h1><?php echo $title; ?></h1> Essayez d'éviter d'inclure la logique dans votre code spaghetti (autre que, peut-être, la répétition, bien que je résume généralement cela aussi).
  2. Chaque fois que possible, créez des documents XML à l'aide des API XML au lieu d'écrire des valeurs brutes dans la sortie. XML a l'avantage d'être facilement transformable, ce qui, d'après mon expérience, vaut largement l'investissement initial supplémentaire, du moins dans les applications de production.
  3. Envoyez au client un document XML représentant vos données avec une instruction de traitement xml-stylesheet indiquant l'emplacement d'une feuille de style à appliquer pour le rendu et laissez le client effectuer son propre rendu. A défaut, placez votre logique de transformation data-to-presentation dans une feuille de style (XSLT, pas CSS) et effectuez la transformation côté serveur. J'apprécie vraiment la séparation entre les données et la présentation que cela me permet.
+0

pour tous les projets quelle est la meilleure méthode? l'incorporation de html en php ou php en html? (comme la réponse d'Aistina) –

+0

@jasmine Désolé, je n'ai pas compris que c'était l'essentiel de la question. Je mettrai à jour ma réponse pour cibler cela. – Dathan

8

Je changerais personnellement votre exemple pour être comme ceci;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> 
    <link rel="stylesheet" type="text/css" href="css/style.css"/> 
    <title>Untitled Document</title> 
    </head> 

    <body> 
    <div class="wrapper"> 
     <div class="header"> 
     <h2><?php echo heaf_func(); ?></h2> 
     </div> 
     <div class="content">content</div> 
     <div class="footer">footer</div> 
    </div> 
    </body> 
    </html> 
+1

+1. Beaucoup mieux dans ce style (modèle) - plus facile à entretenir, plus joli à regarder. –

+0

un xhtml brut à la page ?? –

1

La question est pourquoi vous voulez faire cela. Il suffit de le mettre dans une variable et de faire écho, mais cela ne vaut pas la peine, mais si vous avez besoin de travailler plus loin sur la chaîne (remplacement de la chaîne, etc.), c'est utile.

0

Si vous allez faire des affectations massives à plusieurs lignes de texte en variables comme, pensez à utiliser la syntaxe HEREDOC, qui a l'avantage de ne pas forcer à vous échapper les guillemets, ce qui rend le blob texte beaucoup plus facile à lire et couper/coller dans d'autres choses sans avoir besoin de réglages.En ce qui concerne le choix de PHP-en-HTML ou HTML-en-PHP, tout se résume à ce qui serait plus lisible. Si vous avez 500 lignes de HTML, et seulement un peu de PHP à insérer, optez pour PHP-in-HTML, et vice-versa. Pour un quasi-équilibre, tout dépend de votre préférence.