   #PHP Manual Language Reference Language Reference Instruction
   separation

   PHP Manual
   Prev  Next
   ______________________________________________________________________

Chapter 5. Basic syntax

   Table of Contents
   Escaping from HTML
   Instruction separation
   Comments

Escaping from HTML

   When PHP parses a file, it simply passes the text of the file through
   until it encounters one of the special tags which tell it to start
   interpreting the text as PHP code. The parser then executes all the
   code it finds, up until it runs into a PHP closing tag, which tells
   the parser to just start passing the text through again. This is the
   mechanism which allows you to embed PHP code inside HTML: everything
   outside the PHP tags is left utterly alone, while everything inside is
   parsed as code.

   There are four sets of tags which can be used to denote blocks of PHP
   code. Of these, only two (<?php. . .?> and <script language="php">. .
   .</script>) are always available; the others can be turned on or off
   from the php.ini configuration file. While the short-form tags and
   ASP-style tags may be convenient, they are not as portable as the
   longer versions. Also, if you intend to embed PHP code in XML or
   XHTML, you will need to use the <?php. . .?> form to conform to the
   XML.

   The tags supported by PHP are:

   Example 5-1. Ways of escaping from HTML
   1.  <?php echo("if you want to serve XHTML or XML documents, do like
   this\n"); ?>
   2.  <? echo ("this is the simplest, an SGML processing
   instruction\n"); ?>
       <?= expression ?> This is a shortcut for "<? echo expression ?>"

   3.  <script language="php">
           echo ("some editors (like FrontPage) don't
                 like processing instructions");
       </script>
   4.  <% echo ("You may optionally use ASP-style tags"); %>
       <%= $variable; # This is a shortcut for "<% echo . . ." %>

   The first way, <?php. . .?>, is the preferred method, as it allows the
   use of PHP in XML-conformant code such as XHTML.

   The second way is not available always. Short tags are available only
   when they have been enabled. This can be done via the short_tags()
   function (PHP 3 only), by enabling the short_open_tag configuration
   setting in the PHP config file, or by compiling PHP with the
   --enable-short-tags option to configure. Even if it is enabled by
   default in php.ini-dist, use of short tags are discouraged.

   The fourth way is only available if ASP-style tags have been enabled
   using the asp_tags configuration setting.

     Note: Support for ASP-style tags was added in 3.0.4.

     Note: Using short tags should be avoided when developing
     applications or libraries that are meant for redistribution, or
     deployment on PHP servers which are not under your control, because
     short tags may not be supported on the target server. For portable,
     redistributable code, be sure not to use short tags.

   The closing tag for the block will include the immediately trailing
   newline if one is present. Also, the closing tag automatically implies
   a semicolon; you do not need to have a semicolon terminating the last
   line of a PHP block. Closing tag of a PHP block at the end of a file
   is optional.

   PHP allows you to use structures like this:

   Example 5-2. Advanced escaping
   <?php
   if ($expression) {
       ?>
       <strong>This is true.</strong>
       <?php
   } else {
       ?>
       <strong>This is false.</strong>
       <?php
   }
   ?>
   This works as expected, because when PHP hits the ?> closing tags, it
   simply starts outputting whatever it finds until it hits another
   opening tag. The example given here is contrived, of course, but for
   outputting large blocks of text, dropping out of PHP parsing mode is
   generally more efficient than sending all of the text through echo()
   or print() or somesuch.
   ______________________________________________________________________

   Prev               Home                   Next
   Language Reference  Up  Instruction separation
