PHP en HTML door elkaar?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pim B

Pim B

05/03/2011 00:20:08
Quote Anchor link
Als je een PHP-script maakt, bijvoorbeeld een formulier, gebruik je zowel HTML als PHP.
Je kan dan het formulier zelf in HTML zetten en de verwerking ervan in PHP. Als je binnen het formulier even PHP nodig hebt (bijv. een lus), open je PHP en sluit je het weer af.
Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if(!empty($_POST['naam']))
{

  // Code voor wat er moet gebeuren
}
?>

<html>
  <body>
    <form action='' method='post'>
        <input type='text' name='naam' />
        <?php for($i=1;$i<5;$i++)
              {

                echo "hoi<br />"; // slaat nergens op, maar het gaat ff om het idee
              }
        ?>

        <input type='submit' name='submit' value='Go!' />
    </form>
  </body>
</html>

Je kan ook al je HTML met PHP echoën. Je begint dan bovenaan je script met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php en je eindigt onderaan met ?>
. Die tags staan verder nergens meer in het script.
Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo "<form action='' method='post'>
        <input type='text' name='naam' />
        for($i=1;$i<5;$i++)
              {
                echo "
hoi<br />"; // slaat ook nergens op... het idee hè
              }
        <input type='submit' name='submit' value='Go!' />
      </form>"
;
if(!empty($_POST['naam']))
{

  // Code voor wat er moet gebeuren
}
?>

Maar ook de hele header echo je dan gewoon uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo "<!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>
        <title>Titel van de pagina</title>
        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />

        <link href=\"include/style.css\" rel=\"stylesheet\" type=\"text/css\" />
      </head>
      <body>"
;
      // En hier al je code
      echo "</body>
    </html>"
;
?>


Mijn vraag is: hoe je dat in de praktijk? Het werkt natuurlijk allebei, maar wat wordt er door (professionele) programmeurs gedaan? Is er algemene consensus over of is het meer persoonlijke voorkeur? Of is het misschien afhankelijk van wat voor soort applicatie je aan het maken bent?
 
PHP hulp

PHP hulp

28/01/2022 12:38:47
 
- Ariën -
Beheerder

- Ariën -

05/03/2011 00:37:44
Quote Anchor link
Echte programmeurs houden HTML gescheiden van PHP d.m.v. een Templateparser zoals Smarty 3.
 
- SanThe -

- SanThe -

05/03/2011 01:26:24
Quote Anchor link
- Aar - op 05/03/2011 00:37:44:
Echte programmeurs houden HTML gescheiden van PHP d.m.v. een Templateparser zoals Smarty 3.


Vind ik een simpele gedachte.
 
Joris van Rijn

Joris van Rijn

05/03/2011 08:21:41
Quote Anchor link
Ik zet altijd mijn HTML in aparte files. Die noem ik dan content_form.php etc.
Met mijn php lees ik ze uit en geef de variables erin een waarde. Eigenlijk een heel simpel templateparse systeem.
 
Wouter J

Wouter J

05/03/2011 10:34:51
Quote Anchor link
Ik probeer altijd PHP en HTML zo veel mogelijk gescheiden te houden in het document. Eigenlijk moet alles afgewerkt worden voor het doctype en in het document moet het alleen maar geëchoëd worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
if(!empty($_POST['naam']))
{

  // Code voor wat er moet gebeuren
}
$textVar;
for($i=1;$i<5;$i++)
{

  $textVar .= "hoi<br />"; // slaat nergens op, maar het gaat ff om het idee
}
?>

<html>
  <body>
    <form action='' method='post'>
        <input type='text' name='naam' />
        <?php
          echo $textVar;
        ?>

        <input type='submit' name='submit' value='Go!' />
    </form>
  </body>
</html>
 
Niels K

Niels K

05/03/2011 11:17:10
Quote Anchor link
@aar

Een beetje programmeur werkt met views en niet met van de rare template parsers.. :)
Dan komt ook het MVC tot zijn recht..
 
Pim -

Pim -

05/03/2011 13:00:37
Quote Anchor link
Views kunnen zowel in native-php als in eoa template taal. De goede template engines zorgen voor mapping naar native-php zelfs voor 0 snelheidsverlies (na de 1e caching).

De een is niet beter dan de andere. Voor niet-php designers zijn template talen vaak makkelijker, voor php ontwikkelaars zelf vaak native php. Een goede template engine: Twig
Gewijzigd op 05/03/2011 13:01:39 door Pim -
 
Niels K

Niels K

05/03/2011 13:35:02
Quote Anchor link
@Pim

Helemaal gelijk. Alleen ik ben geen fan van Smarty, Over Twig: Dat is inderdaad een hele goede.

Zelf werk ik met Zend_View en dat vind ik heerlijk werken.
 
Veur Heur

Veur Heur

05/03/2011 13:46:29
Quote Anchor link
templatepower!
 

05/03/2011 19:20:41
Quote Anchor link
Pim - op 05/03/2011 13:00:37:
Views kunnen zowel in native-php als in eoa template taal. De goede template engines zorgen voor mapping naar native-php zelfs voor 0 snelheidsverlies (na de 1e caching).

De een is niet beter dan de andere. Voor niet-php designers zijn template talen vaak makkelijker, voor php ontwikkelaars zelf vaak native php. Een goede template engine: Twig


Rasmus Lerdorf raadde in het verleden de volgende taal aan:

PHP!

:-)
 
Pim -

Pim -

05/03/2011 21:13:16
Quote Anchor link
Zie het voorbeeld op de frontpage van Twig.
 
Niels K

Niels K

05/03/2011 21:55:14
Quote Anchor link
Is overigens ook gemaakt door de maker van het symfony framework.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.