PHP  
downloads | documentation | faq | getting help | | php.net sites | links 
search for in the  
previousRefer�ncia da LinguagemSeparador de instru��esnext
Last updated: Thu, 18 Jul 2002
view this page in Printer friendly version | English | Chinese | Czech | Dutch | Finnish | French | German | Hungarian | Italian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Turkish

Cap�tulo 6. Sintaxe b�sica

Alternado/Escaping do HTML

Quando o PHP interpreta um arquivo, ele simplesmente repassa o texto do arquivo at� encontrar uma das tags especiais que lhe diz para come�ar a interpretar o texto como c�digo PHP. O interpretador ent�o executa todo o c�digo que encontra, at� chegar em uma tag de fechamento PHP, que novamente o coloca simplesmente repassando texto novamente. Este � o mecanismo que permite a inclus�o de c�digo PHP dentro do HTML: qualquer coisa fora das tags PHP � deixado como encontrado, enquanto tudo dentro � interpretado e executado.

H� quatro conjuntos de tags que podem ser usadas para marcar blocos de c�digo PHP. Delas, somente duas (<?php. . .?> e <script language="php">. . .</script>) s�o sempre dispon�veis. As outras podem ser ativadas ou desativadas a partir do arquivo de configura��o php.ini. Enquanto as formas reduzidas das tags ou no seu estilo ASP serem convenientes, elas n�o s�o port�veis em todas as vers�es. Al�m disso, se voc� pretende incluir c�digo PHP em XML ou XHTML, voc� precisar� usar a forma <?php ... ?> para compatibilidade com o padr�o XML.

As tags suportadas pelo PHP s�o:

Exemplo 6-1. Maneiras de alternar do HTML

1.  <?php echo("se voc� precisa dispor documentos XHTML ou XML, use assim\n"); ?>

2.  <? echo ("este � o mais simples, como uma instru��o de processamento SGML\n"); ?>
    <?= espressao ?> Uma redu��o de "<? echo expressao ?>"

3.  <script language="php">
        echo ("alguns editores (como o FrontPage) n�o
              gostam de processas instru��es");
    </script>

4.  <% echo ("Voc� tamb�m pode usar tags ASP opcionalmente"); %>
    <%= $variavel; # Uma redu��o para "<% echo ..." %>

O primeiro m�todo, <?php. . .?>, � o preferencial, j� que ele permite o uso do PHP em c�digos padr�o XML como o XHTML.

O segundo m�todo pode n�o estar sempre dispon�vel. Tags curtas est�o dispon�veis apenas quando ativadas. Isto pode ser realizando atrav�s da fun��o short_tags() (PHP 3 somente), ativando a diretiva de configura��o short_open_tag no arquivo de configura��o do PHP ou compilando o PHP com a op��o --enable-short-tags no configure. Mesmo que ele esteja configurado por default no php.ini-dist, o uso de tags curtas � desencorajado.

A quarta maneira s� est� dispon�vel se a tag estilo ASP for ativada utilizando a diretiva asp_tags no arquivo de configura��o.

Nota: O suporte as tags estilo APS foi incorporada na vers�o 3.0.4.

Nota: A utiliza��o das tags curtas deve ser evitada quando do desenvolvimento de aplica��es ou bibliotecas com inten��o de redistribui��o ou no desenvolvimento de servi�os em PHP que n�o ficar�o sob seu controle, uma vez que as tags curtas podem n�o estar dispon�veis no servidor de instala��o. Para portabilidade de c�digo para distribui��o, tenha certeza de n�o usar tags curtas.

A tag de fechamento incluir� uma linha nova linha em branco automaticamente se uma n�o estiver presente. Al�m, a tag de fechamento automaticamente implica num ponto e v�rgula: voc� n�o precisa ter um ponto e v�rgula no fim da �ltima linha de c�digo PHP.

O PHP tamb�m suporta a utiliza��o de estruturas como essa:

Exemplo 6-2. Alternagem avan�ada

<?php
if ($expression) {
    ?>
    <strong>Isso � verdadeiro.</strong>
    <?php
} else {
    ?>
    <strong>Isto � falso.</strong>
    <?php
}
?>
Isso funciona como esperado porque quando o PHP encontra a tag de fechamento ?>, ele simplesmente come�a a imprimir tudo at� encontrar outra tag de abertura. Obviamente, o exemplo acima se aplica a exibi��o de grandes blocos de texto, uma vez que sair do modo de interpreta��o do PHP � geralmente mais eficiente que imprimir todo o texto atrav�s de fun��es como echo(), print() e outras.

User Contributed Notes
Sintaxe b�sica
add a note about notes

03-Jan-2001 08:35

[Ed Note: this was fixed in 4.0.5  [email protected]]

If you're using a MacOS text editor, such as BBEdit, for composing your
PHP, you'll want to save your files with Unix line breaks.
This fixes the "error on line 1" problem where PHP's error
system doesn't recognize the MacOS line breaks properly. It will also
allow you more flexibility in creating multi-line SQL statements.

11-Oct-2001 06:34
I use FrontPage 2000 exclusively for creating my PHP documents.  I use the
<% %> style syntax.  I can put code anywhere, before head (as is
required for cookie data) and anywhere else in between.  Using advanced
flow control, i can design an entire page in html, and then put PHP
control statements around it.  This is much easier than <% echo %>
commands.  You can drop in/out of PHP at ANY time, and the only reason to
ever use <% echo %> is for variables.  Save yourself some hassle and
write your html in html and avoid the echo mess.


12-Dec-2001 06:36

[Ed Note:
This is because of short_tags, <?xml turns php parsing on, because of
the <?.
[email protected]]

I am moving my site to XHTML and I ran into trouble with the <?xml
?> interfering with the <?php ?> method of escaping for HTML.  A
quick check of the mailing list confirmed that the current preferred
method to cleanly output the <?xml ?> line is to echo it:
<?php echo("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); ?>


16-Jan-2002 07:40

Under php 3.0.14 :
if you have a line like this :
echo "?> written to file";
And you wish to comment this line, you'll do this :
//echo "?> written to file";
But this will generate a parse error at the end of script (even if this
line was in an include script).

Why?  because '?>' is ignored as long as it is inside "".
But once you've commented, the echo function is ignored, and '?>' takes
its signification : end of script!

I guess it was corrected on next version, but if you run under php 3.0.14
be careful, it make me loose a lot of time!

Paquerette


18-Mar-2002 10:21

A little "feature" of PHP I've discovered is that the <?PHP
token requires a space after it whereas after the <? and <% tokens a
space is optional.

The error message you get if you miss the space is not too helpful so be
warned!

(These examples only give a warning with error_reporting(E_ALL) )

<?PHP/*<Some HTML>*/?> fails...
<?/*<Some HTML>*/?> works...


17-Jun-2002 06:50

I can't find out how to break the line in the middle of a function.  I have
tried the standard Unix '\' continuation trick, but that doesn't work.


18-Jun-2002 08:51

if you're experiencing problems with php PIs when generating  creating
mixed php/html content with e.g. an XSLT processor in html output mode:
it's not the processors fault.
an _SGML_ processing instruction is actually written as <?php ..>,
i.e. without a trailing question mark.

<xsl:processing-instruction name="php">
  echo $hello;
</xsl:processing-instruction>
will therefor not not work like it should.

a sane solution to work around this is generating <script> tags
instead.


09-Jul-2002 08:42

also, if you're using Mac OS X...i highly suggest looking into Dreamweaver
MX.  it's been a DREAM in learning and using PHP.  no problems with line
breaks.  it also colors your code based on the codes type and has pop-up
tips on what goes in certian brackets and functions.  really sharp...


15-Jul-2002 10:37

Need help how I can build a  mysql fot php to get a localhost ??

15-Jul-2002 03:42
You don't need the closing tag if you don't plan to add html (or something)
afterwards. This works (but the ; must be there):

<? phpinfo();


15-Jul-2002 06:45

Ich habe hier einen Code der mir egentlich sagen m�sste: Ihr letzter
versuch war am...
Er funktioniert aber nicht, deshalb gebe ich in hier rein, falls mir
irgendjemand diesen Code richtigstellen kann, sollte er mir bitte ein mail
schicken.
Hier der Code:

<?php
$lastvisit = $http_COOKIE_VARS
[,,lastvisit��];
if (!$lastvisit)
{
echo ,,Sie haben uns in diesen Monat noch nicht beehrt!
��; } else { echo ,,Ich letzter Besuch war am: $lastvisit��; } $datum = date(,,d.m.Y H:i:s��) setcookie(lastvisit��, $datum, time()+30*24*60*60); // 30 tage lang g�ltig ?>

add a note about notes
previousRefer�ncia da LinguagemSeparador de instru��esnext
Last updated: Thu, 18 Jul 2002
show source | credits | stats | mirror sites:  
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Sat Jul 20 20:16:23 2002 CEST