ae              Mon May 13 22:43:59 2002 EDT

  Added files:                 
    /phpdoc-pt_BR/features      commandline.xml 
  Log:
  initial translation
  

Index: phpdoc-pt_BR/features/commandline.xml
+++ phpdoc-pt_BR/features/commandline.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.3 Maintainer: andre_ae Status: ready -->
<chapter id="features.commandline">
 <title>Usando o PHP na linha de comando</title>
 <!-- NEW DOCUMENTATION STARTS -->
 <para>
  Desde a vers�o 4.3, o <literal>PHP</literal> suporta um novo tipo
  <literal>SAPI</literal> (Server Application Programming Interface)
  chamado <literal>CLI</literal> que significa <emphasis>Command Line
  Interface</emphasis>. Como o pr�prio nome diz, essa <literal>SAPI</literal>
  tem foco no desenvolvimento de aplica��es shell (ou no terminal/linha de comando) com
  o <literal>PHP</literal>. As diferen�as entre a
  <literal>CLI SAPI</literal> e as outras <literal>SAPI</literal>s s�o
  detalhadas neste cap�tulo.
 </para>
 <para>
  A <literal>CLI SAPI</literal> foi liberada primeiramente com o
  <literal>PHP 4.2.0</literal>, mas ainda em est�gio experimental, sendo necess�rio
  ativ�-la explicitamente com a op��o <literal>--enable-cli</literal> durante o
  <literal>./configure</literal>. Desde o <literal>PHP 4.0.3</literal> a
  <literal>CLI SAPI</literal> n�o mais � experimental e �
  <emphasis role="strong">sempre</emphasis> compilada e instalada como o arquivo
  <filename>php</filename> (chamado <filename>php.exe</filename> no Windows),
  no formato bin�rio execut�vel.
 </para>
 <para>
  Diferen�as importantes das <literal>CLI SAPI</literal> comparada com outras
  <literal>SAPI</literal>s:
  <itemizedlist>
   <listitem>
    <para>
     Diferentemente da <literal>CGI SAPI</literal>, nenhum header � impresso
     na sa�da.
    </para>
    <para>
     A <literal>CGI SAPI</literal> possui um meio de suprimir os headers
     HTTP, mas n�o h� uma chave equivalente para ativ�-los na <literal>CLI
     SAPI</literal>.
    </para>
   </listitem>
   <listitem>
    <para>
     Estas s�o as diretivas do &php.ini; que s�o sobrescritas pela <literal>CLI
     SAPI</literal> porque n�o fazem sentido no ambiente shell:
     <table>
      <title>Diretivas &php.ini; sobrescritas</title>
      <tgroup cols="3">
       <thead>
        <row>
         <entry>Diretiva</entry>
         <entry>Valor default <literal>CLI SAPI</literal></entry>
         <entry>Coment�rios</entry>
        </row>
       </thead>
       <tbody>
        <row>
         <entry><link linkend="ini.html-errors">html_errors</link></entry>
         <entry>&false;</entry>
         <entry>
          Pode ser bem dif�cil de ler mensagens de erro no seu shell quando
          elas est�o embebidas dentro de tags <literal>HTML</literal>,
          por isso essa diretiva tem default para &false;.
         </entry>
        </row>
        <row>
         <entry><link linkend="ini.implicit-flush">implicit_flush</link></entry>
         <entry>&true;</entry>
         <entry>
          Essa diretiva causa que qualquer sa�da gerada de um
          <function>print</function>, <function>echo</function> e semelhantes sejam
          imediatamente escritas para o output e n�o cacheadas em nenhum buffer.
         </entry>
        </row>
        <row>
         <entry><link 
linkend="ini.max-execution-time">max_execution_time</link></entry>
         <entry>0 (unlimited)</entry>
         <entry>
          Devido as infinitas possibilidades da utiliza��o do <literal>PHP</literal> em
          ambientes shell, tempo m�ximo de execu��o foi configurado para
          ilimitado. Enquanto aplica��es escritas para web s�o geralmente executadas
          em poucos segundos, aplica��es no shell tendem a ter um tempo de execu��o
          mais longo.
         </entry>
        </row>
        <row>
         <entry><link 
linkend="ini.register-argc-argv">register_argc_argv</link></entry>
         <entry>&true;</entry>
         <entry>
          As vari�veis globais do <literal>PHP</literal> <literal>$argc</literal>
          (n�mero de argumentos passados para aplica��o) e
          <literal>$argv</literal> (array com os argumentos atuais) s�o sempre
          presentes e preenchidos com os valores apropriados quando utilizando a 
          <literal>CLI SAPI</literal>.
         </entry>
        </row>
       </tbody>
      </tgroup>
     </table>
    </para>
    <note>
     <para>
      Estas diretivas n�o podem ser inicializadas com outros valores do
      arquivo de configura��o &php.ini; ou um arquivo personalizado (se informado). 
Esta
      limita��o existe porque estes valores s�o aplicados depois que todos
      os arquivos de configura��o s�o analisados. Entretanto, seus valores podem ser 
modificados
      durante a execu��o (o que pode n�o fazer sentido para todas elas,
      por exemplo, <link linkend="ini.register-argc-argv">register_argc_argv</link>).
     </para>
    </note>
   </listitem>
   <listitem>
    <para>
     A <literal>CLI SAPI</literal> <emphasis
     role="strong">n�o</emphasis> modifica o diret�rio de execu��o atual para o 
diret�rio
     onde o script � interpretado!
    </para>
    <para>
     Exemplo mostrando a diferen�a da <literal>CGI SAPI</literal>:
     <programlisting role="php">
<![CDATA[
<?
    /* Nossa aplica��o de teste */
    echo getcwd(), "\n";
?>
]]>
     </programlisting>
    </para>
    <para>
     Quando utilizando a vers�o <literal>CGI</literal>, a sa�da �
     <screen>
<![CDATA[
$ pwd
/tmp
$ php-cgi -f outro_diretorio/test.php
/tmp/outro_diretorio
]]>
     </screen>
     Isto mostra como o <literal>PHP</literal> modifica o diret�rio atual
     para aquela onde o script � executado.
    </para>
    <para>
     Utilizando a vers�o <literal>CLI SAPI</literal>:
     <screen>
<![CDATA[
$ pwd
/tmp
$ php -f outro_diretorio/test.php
/tmp
]]>
     </screen>
     E isto mostra a grande flexibilidade ferramentas shell em
     <literal>PHP</literal>.
    </para>
    <note>
     <para>
      A <literal>CGI SAPI</literal> suporta o comportamento da <literal>CLI 
SAPI</literal>
      utilizando a chave <literal>-C</literal> quando de sua execu��o na
      linha de comando.
     </para>
    </note>
   </listitem>
  </itemizedlist>
 </para>
 <para>
  A lista de op��es de linha de comando fornecidas pelo bin�rio do 
<literal>PHP</literal>
  pode ser solicitada a qualquer tempo executando o <literal>PHP</literal> com a
  op��o <literal>-h</literal>:
  <screen>
<![CDATA[
Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -s               Display colour syntax highlighted source.
  -w               Display source with stripped comments and whitespace.
  -f <file>        Parse <file>.
  -v               Version number
  -c <path>|<file> Look for php.ini file in this directory
  -a               Run interactively
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -z <file>        Load Zend extension <file>.
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -i               PHP information
  -r <code>        Run PHP <code> without using script tags <?..?>
  -h               This help

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin
]]>
  </screen>
 </para>
 <para>
  A <literal>CLI SAPI</literal> fornecer tr�s maneiras diferentes para voc�
  executar seu c�digo <literal>PHP</literal>:
  <orderedlist>
   <listitem>
    <para>
     Chamando o <literal>PHP</literal> para executar um arquivo determinado.
    </para>
    <para>
     <screen>
<![CDATA[
php my_script.php

php -f my_script.php
]]>
     </screen>
     De ambas maneiras (utilizando ou n�o a op��o <literal>-f</literal>) o
     arquivo informado <filename>my_script.php</filename> � executado. Voc� pode 
escolher qualquer arquivo para
     executar, seus scripts <literal>PHP</literal> n�o precisam terminar com a
     extens�o <filename>.php</filename>, podendo ter qualquer nome ou extens�o
     que voc� deseje.
    </para>
   </listitem>
   <listitem>
    <para>
     Passar o c�digo <filename>PHP</filename> para execu��o diretamente a linha
     de comando.
    </para>
    <para>
     <screen>
<![CDATA[
php -r 'print_r(get_defined_constants());'
]]>
     </screen>
     � preciso ter especial cuidado com a substitui��o de vari�veis shell e
     delimita��o de strings utilizada.
    </para>
    <note>
     <para>
      Leia o exemplo cuidadosamente, observando que n�o h� tags de abertura ou 
fechamento! A
      op��o <literal>-r</literal> simplesmente n�o precisa delas. Utilizando-as voc� 
      obter� erros de interpreta��o.
     </para>
    </note>
   </listitem>
   <listitem>
    <para>
     Fornece c�digo <literal>PHP</literal> para interpreta��o via a entrada padr�o
     (<literal>stdin</literal>).
    </para>
    <para>
     Isto mostra a habilidade poderosa de como criar dinamicamente
     c�digo <literal>PHP</literal> e fornec�-lo ao bin�rio, como demonstrado
     neste exemplo (apenas demonstrativo):
     <screen>
<![CDATA[
$ alguma_aplicacao | algum_filtro | php | sort -u >final_output.txt
]]>
     </screen>
    </para>
   </listitem>
  </orderedlist>
  Voc� n�o pode combinar nenhum das tr�s maneiras para executar c�digo.
 </para>
 <para>
  Assim como qualquer aplica��o shell, n�o somente o bin�rio do <literal>PHP</literal>
  aceita um certo n�mero de argumentos, mas tamb�m seu script <literal>PHP</literal>
  tamb�m pode receb�-los. O n�mero de argumentos que podem ser passados para seu script
  n�o � limitado ao <literal>PHP</literal> (mas o shell tem um certo limite de tamanho
  em caracteres que podem ser informados, e n�o h� um padr�o para esse
  limite). Os argumentos passados para seu script s�o disponibilizados no array
  global <literal>$argv</literal>. No �ndice zero sempre conter� o nome do
  script (podendo ser <literal>-</literal> no caso de c�digo <literal>PHP</literal>
  estar vindo da entrada padr�o ou da op��o de linha de comando
  <literal>-r</literal>). O segunda vari�vel global
  <literal>$argc</literal> cont�m o n�mero de elementos no
  array <literal>$argv</literal> (<emphasis role="strong">mas n�o</emphasis> o
  n�mero de argumentos passados para seu script.
 </para>
 <para>
  Os argumentos que voc� deseja passar para seu script n�o podem come�ar com o caracter
  <literal>-</literal> e isso n�o pode ser modificado.
  Passando argumentos para seu script que comecem com um
  <literal>-</literal> causar� problemas porque o <literal>PHP</literal>
  tentar� manuse�-los. Para prevenir isso, utilize o separador de argumentos
  <literal>--</literal>. Depois que os argumentos s�o interpretados pelo
  <literal>PHP</literal>, todos os argumentos restantes s�o repassados
  intocados para seu script.
 </para>
 <screen>
<![CDATA[
# Isto n�o executar� o c�digo fornecido e ir� fazer o PHP mostrar sua ajuda
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Isto passar� o argumento '-h' para seu script e prevenir� o PHP de us�-lo
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
]]>
 </screen>
 <para>
  Entretanto, h� ainda uma outra maneira de se utilizar o <literal>PHP</literal> no
  shell. Voc� pode escrever um script que na primeira linha tenha
  <literal>#!/usr/bin/php</literal> e na seq��ncia tenha
  c�digo <literal>PHP</literal> normal, incluindo as tags de
  in�cio e fim e os atributos de execu��o do arquivo.
  Desta maneira ele pode ser executado como um script shell ou PERL
  normalmente:
  <programlisting role="php">
<![CDATA[
#!/usr/bin/php
<?
    var_dump($argv);
?>
]]>
  </programlisting>
  Assumindo que o arquivo foi nomeado como <filename>teste</filename> e est� no 
diret�rio
  atual, n�s podemos fazer o seguinte:
  <screen>
<![CDATA[
$ chmod 755 teste
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./teste"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
]]>
  </screen>
  Como voc� viu, dessa forma n�o h� problemas em passar par�metros para seu script
  que comecem com o caracter <filename>-</filename>
 </para>
 <para>
  <table>
   <title>Op��es de linha de comando</title>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>Op��o</entry>
      <entry>Descri��o</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>-s</entry>
      <entry>
       <para>
        Mostra o c�digo fonte com destaque de cores.
       </para>
       <para>
        Esta op��o usa o mecanismo interno para interpretar o arquivo e produzir
        uma vers�o <literal>HTML</literal> do fonte com destaque de cores e a envia 
para
        a sa�da padr�o. Note que ele somente gerar� blocos de
        <literal>&lt;code&gt; [...] &lt;/code&gt;</literal>,
        mas n�o headers <literal>HTML</literal>.
       </para>
       <note>
        <para>
         Esta op��o n�o funciona juntamente com a op��o <literal>-r</literal>.
         
        </para>
       </note>
      </entry>
     </row>
     <row>
      <entry>-w</entry>
      <entry>
       <para>
        Mostra o fonte sem coment�rios e espa�os em branco.
       </para>
       <note>
        <para>
         Esta op��o n�o funciona juntamente com a op��o <literal>-r</literal>.
         
        </para>
       </note>
      </entry>
     </row>
     <row>
      <entry>-f</entry>
      <entry>
       <para>
        Interpreta e executa o arquivo informado com a op��o <literal>-f</literal>
        Esta diretiva � opcional e pode ser deixada de lado. Informar somente
        o nome do arquivo para execu��o � suficiente.
       </para>
      </entry>
     </row>
     <row>
      <entry>-v</entry>
      <entry>
       <para>
        Imprime as vers�es o PHP, PHP SAPI e Zend para a sa�da padr�o, por exemplo:
        <screen>
<![CDATA[
$ php -v
PHP 4.3.0-dev (cli)
Zend Engine v1.2.1, Copyright (c) 1998-2002 Zend Technologies
]]>
        </screen>
       </para>
      </entry>
     </row>
     <row>
      <entry>-c</entry>
      <entry>
       <para>
        Esta op��o informa um diret�rio onde procurar pelo
        &php.ini; ou especifica um arquivo <literal>INI</literal> personalizado
        diretamente (n�o presisa ser obrigatoriamente &php.ini;), por exemplo:
        <screen>
<![CDATA[
$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php
]]>
        </screen>
       </para>
      </entry>
     </row>
     <row>
      <entry>-a</entry>
      <entry>
       <para>
        Executa o <literal>PHP</literal> no modo interativo.
        <!--
        mfischer, 20020510: Couldn't come up with a decent useful description
        of the current implementation of the interactive mode.
        -->
       </para>
      </entry>
     </row>
     <row>
      <entry>-d</entry>
      <entry>
       <para>
        Esta op��o permite definir um valor personalizado para qualquer diretiva
        de configura��o permitida no &php.ini;. Sintaxe:
        <screen>
<![CDATA[
-d diretiva[=valor]
]]>
        </screen>
       </para>
       <para>
        Examples:
        <screen>
<![CDATA[
# Omitindo a parte do valor ir� configurar a diretiva para "1"
$ php -d max_execution_time -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Passando um valor vazio ir� configurar a diretiva para ""
php -d max_execution_time= -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# A diretiva de configura��o ser� preenchida com qualquer coisa informada depois do 
caracter =''
$  php -d max_execution_time=20 -r '$foo = ini_get("max_execution_time"); 
var_dump($foo);'
string(2) "20"
$  php -d max_execution_time=instonaofazsentido -r '$foo = 
ini_get("max_execution_time"); var_dump($foo);'
string(15) "instonaofazsentido"
]]>
        </screen>
       </para>
      </entry>
     </row>
     <row>
      <entry>-e</entry>
      <entry>
       <para>
        Gera informa��es estendidas para o debugador/profiler.
        <!--
        mfischer, 20020510: Anyone who can provide more information what it
        really does (even if it's only for developers) ?
        -->
       </para>
      </entry>
     </row>
     <row>
      <entry>-z</entry>
      <entry>
       <para>
        Carrega a extens�o Zend. Se somente o nome de arquivo � fornecido, o PHP tenta 
carregar
        essa extens�o do caminho default de bibliotecas do seu sistema
        (geralmente especificado em <filename>/etc/ld.so.conf</filename> em sistemas
        Linux). Passando um nome de arquivo com o caminho absoluto ir� evitar a
        procura no caminho das bibliotecas de sistema. Um nome de arquivo com uma
        informa��o de diret�rio relativa far� com que o <literal>PHP</literal> apenas 
tente
        carregar a extens�o no caminho relativo ao diret�rio atual.
       </para>
      </entry>
     </row>
     <row>
      <entry>-l</entry>
      <entry>
       <para>
        Esta op��o fornece uma maneira conveniente apenas realizar uma checagem de 
sintaxe
        no c�digo <literal>PHP</literal> fornecido. No sucesso, o texto
        <literal>No syntax errors detected in &lt;arquivo&gt;</literal> �
        impresso na sa�da padr�o e informado o c�digo de saida de sistema
        <literal>0</literal>. Em caso de erro, o texto <literal>Errors parsing
        &lt;filename&gt;</literal> juntamente com o a mensagem do interpretador
        interno � impressa para a sa�da padr�o e o c�digo de sa�da de sistema �
         <literal>255</literal>.
       </para>
       <para>
        Esta op��o n�o procura por erros fatais (como fun��es n�o definidas). Use
        <literal>-f</literal> se voc� deseja detectar erros fatais tamb�m.
       </para>
       <note>
        <para>
         Esta op��o n�o trabalha com a op��o <literal>-r</literal>
         
        </para>
       </note>
      </entry>
     </row>
     <row>
      <entry>-m</entry>
      <entry>
       <para>
        Utilizando essa op��o, o PHP imprime os m�dulos PHP e Zend compilados
        (e carregados):
        <screen>
<![CDATA[
$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]
]]>
        </screen>
       </para>
      </entry>
     </row>
     <row>
      <entry>-i</entry>
      <entry>
       Esta op��o de linha de comando chama a fun��o <function>phpinfo</function> e 
imprime
       seus resultados. Se o <literal>PHP</literal> n�o est� funcionando bem, �
       interessante fazer um <literal>php -i</literal> para observar qualquer mensagem
       de erro impressa antes ou dentro das tabelas de informa��o.
       Como a sa�da � em <literal>HTML</literal>, ela � um
       pouco grande.
      </entry>
     </row>
     <row>
      <entry>-r</entry>
      <entry>
       <para>
        Esta op��o permite a execu��o de c�digo <literal>PHP</literal> direto da
        linha de comando. As tags de in�cio e fim do <literal>PHP</literal>
        (<literal>&lt;?php</literal> e <literal>?&gt;</literal>)
        <emphasis role="strong">n�o s�o</emphasis> necess�rias e causar�o erros
        de interpreta��o.
       </para>
       <note>
        <para>
         Cuidados dever�o ser tomados utilizando dessa forma para
         evitar que haja substitui��o de vari�veis pelo 
         shell.
        </para>
        <para>
         Exemplo mostrando um erro de interpreta��o
         <screen>
<![CDATA[
$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
]]>
         </screen>
         O problema aqui decorre do sh/bash realizar substitui��es de vari�veis
         sempre quando se utilizam aspas (<literal>"</literal>). Desde que a
         vari�vel <literal>$foo</literal> n�o deve estar definida, ela �
         substitu�da por nada o que faz que o c�digo passado para o
         <literal>PHP</literal> para execu��o seja:
         <screen>
<![CDATA[
$ php -r " = get_defined_constants();"
]]>
         </screen>
         A maneira correta � utilizar ap�strofos (<literal>'</literal>).
         Vari�veis em strings delimitadas por ap�strofos n�o s�o substituidas
         pelo sh/bash.
         <screen>
<![CDATA[
$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]
]]>
         </screen>
         Se voc� estiver utilizando um shell diferente do sh/bash, voc� pode 
experimentar
         comportamentos diferenciados. Sinta-se livre para abrir um aviso de bug ou 
enviar um e-mail
         para [EMAIL PROTECTED]

         Voc� vai rapidamente conseguir problemas quando tentar obter vari�veis
         do ambiente dentro do c�digo ou quando utilizar barras invertidas para 
escape. Esteja
         avisado.
        </para>
       </note>
      </entry>
     </row>
     <row>
      <entry>-h</entry>
      <entry>
       Com essa op��o, voc� pode obter informa��es sobre a lista atual de
       op��es de linha de comando pequenas descri��es sobre o que elas fazem.
      </entry>
     </row>
    </tbody>
   </tgroup>
  </table>
 </para>
 <!-- NEW DOCUMENTATION ENDS -->

 <!-- OLD DOCUMENTED STARTS
  mfischer, 20020510: I've commented out the start paragraphs of the old
  documentation as it is meant to be replaced by the new one.
 <para>
  As op��es de linha de comando para o execut�vel do PHP s�o �teis
  se voc� deseja debugar ou testar a instala��o do PHP, mas
  pode ser mais que isso, se voc� precisa utilizar o PHP para um
  prop�sito diferente do script para Web.
 </para>
 <para>
  Note que voc� sempre pode direcionar a sa�da do execut�vel do PHP
  para um arquivo externo com o caracter &gt;,
  ent�o <literal>php -q test.php > test.html</literal>
  enviar� todo a sa�da de <filename>test.php</filename>
  sem os headers HTTP para o arquivo <filename>test.html</filename>
  no mesmo diret�rio.
 </para>
 <para>
  Voc� s� pode utilizar essas op��es de linha de comando se voc� tiver
  o PHP execut�vel. Se voc� compilou a vers�o m�dulo
  e n�o possui a vers�o CGI dispon�vel em sua
  m�quina, ent�o voc� n�o poder� usar essas op��es.
  Para os usu�rios Windows, tanto a vers�o execut�vel e m�dulo do PHP
  ent�o na distribui��o bin�ria, onde o execut�vel �
  chamado <filename>php.exe</filename>.
 </para>
 <para>
  A seguinte lista das op��es de linha de comando est� atualizada para o PHP 4.0.6.
  Voc� pode obter a lista atualizada e algumas descri��es com o opcional
  <literal>-h</literal>. A sa�da de
   <literal>php -h</literal> dever� ser algo como isso:
  <screen>
<![CDATA[
Usage: php [-q] [-h] [-s [-v] [-i] [-f <file>] |  {<file> [args...]}
  -q             Quiet-mode.  Suppress HTTP Header output.
  -s             Display colour syntax highlighted source.
  -f <file>      Parse <file>.  Implies `-q'
  -v             Version number
  -C             Do not chdir to the script's directory
  -c <path>      Look for php.ini file in this directory
  -d foo[=bar]   Define INI entry foo with value 'bar'
  -e             Generate extended information for debugger/profiler
  -z <file>      Load Zend extension <file>.
  -l             Syntax check only (lint)
  -m             Show compiled in modules
  -i             PHP information
  -h             This help
]]>
  </screen>
 </para>
 <para>
  Esta � a lista das mais importantes op��es de linha de comando
  com explica��es detalhadas.
 </para>
 <para>
  <table>
   <title>Op��es de linha de comando</title>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>Op��o</entry>
      <entry>Descri��o</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>-q</entry>
      <entry>
       Suprime os headers HTTP na sa�da. Normalmente o PHP imprime
       headers HTTP para o programa chamador (normalmente o servidor web)
       para encaminhar para o browser. Escrevendo aplica��es
       para a linha de comando esses headers s�o desnecess�rios.
      </entry>
     </row>
     <row>
      <entry>-s</entry>
      <entry>
       Exibe o c�digo fonte com destaque de cores para o arquivo
       interpretado com essa op��o. Tem o mesmo efeito de voc�
       exibir c�digo fonte utilizando a fun��o
       <function>highlight_file</function> num
       script PHP.
      </entry>
     </row>
     <row>
      <entry>-f</entry>
      <entry>
       Interpreta o arquivo informado, e procura por erros de sintaxe ou
       fatais. Essa op��o implica em -q. Utilize para
       debugar.
      </entry>
     </row>
     <row>
      <entry>-v</entry>
      <entry>
       Chamando o PHP com essa op��o, ele exibe
       o n�mero da sua vers�o, por exemplo, 4.0.6.
      </entry>
     </row>
     <row>
      <entry>-C</entry>
      <entry>
       Normalmente o PHP altera o diret�rio de trabalho para
       o diret�rio de execu��o do script. Esta op��o torna poss�vel,
       por exemplo, abrir arquivos no mesmo diret�rio,
       apenas especificando o nome do arquivo. Se voc�
       deseja desativar essa modifica��o de diret�rio, basta
       usar a op��o.
      </entry>
     </row>
     <row>
      <entry>-c</entry>
      <entry>
       Utilizando essa op��o, voc� pode especificar um caminho alternativo
       para o &php.ini;, ent�o o PHP
       procurar� por seu arquivo de configura��es neste caminho
       em vez de seu default.
      </entry>
     </row>
     <row>
      <entry>-d</entry>
      <entry>
       Com essa op��o, voc� pode configurar diretivas individuais do
       &php.ini; para
       execu��o de um script.
      </entry>
     </row>
     <row>
      <entry>-l</entry>
      <entry>
       Verifica o arquivo informado apenas para erros de sintaxe. Esta
       op��o implica em -q. Utilize para debugar.
       Esta op��o n�o verifica erros fatais (como fun��es
       n�o definidas). Utilize -f para testar 
       erros fatais tamb�m.
      </entry>
     </row>
     <row>
      <entry>-m</entry>
      <entry>
       Utilizando esta op��o, o PHP imprime a lista dos m�dulos PHP e Zend
       compilados (e carregados), as vers�es do PHP e
       Zend e uma pequena informa��o de copyright
       da Zend.
      </entry>
     </row>
     <row>
      <entry>-i</entry>
      <entry>
       Esta op��o chama a fun��o
       <function>phpinfo</function> e imprime
       seus resultados. Se o PHP n�o estiver funcionando bem,
       � interessante que voc� fa�a um <literal>php -i</literal>
       e voc� ver� qualquer mensagem de erro exibida
       antes da tabela de informa��es.
      </entry>
     </row>
     <row>
      <entry>-h</entry>
      <entry>
       Com essa op��o voc� pode obter informa��es sobre
       a atual lista de op��es de linha de comando e
       pequenas descri��es dessas op��es.
      </entry>
     </row>
    </tbody>
   </tgroup>
  </table>
 </para>
 <para>
 -->
 <para>
  O PHP execut�vel pode ser utilizando para rodar scripts PHP absolutamente
  independente de um servidor web. Se voc� est� num sistema Unix, voc� pode 
acrescentar uma linha
  especial na primeira linha de seu script e torn�-lo execut�vel, ent�o o sistema 
operacional
  saber� que programa dever� rodar o script. Na plataforma Windows, voc� pode
  associar <literal>php.exe -q</literal> com o clique duplo em arquivos
  <literal>.php</literal> ou fazer um arquivo batch para rodar 
  seus scripts atrav�s do PHP. A primeira linha acrescentada ao script nos Unix n�o 
  funcionam no Windows, por isso voc� n�o pode escrever programas independentes de 
plataforma desse jeito.
  Um exemplo simples de como escrever um programa para a linha de comando segue abaixo:
 </para>
 <example>
  <title>Um script para rodar na linha de comando (script.php)</title>
  <programlisting role="php">
<![CDATA[
#!/usr/bin/php -q
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

Este � um script de linha de comando com um par�metro.

  Uso:
  <?php echo $argv[0]; ?> <opcao>

  <opcao> pode ser qualquer palavra que
  voc� queira imprimir. Com as op��es --help, -help, -h
  ou -?, voc� pode obter essa ajuda.

<?php
} else {
    echo $argv[1];
}
?>
]]>
  </programlisting>
 </example>
 <para>
  No script acima, n�s utilizamos uma primeira linha especial para indicar
  que este arquivo precisa rodar pelo PHP e que n�o deve imprimir headers
  HTTP. H� duas vari�veis que voc� precisa conhecer para escrever aplica��es
  em linha de comando com o PHP: <varname>$argc</varname> e
  <varname>$argv</varname>. O primeiro � o n�mero de argumentos mais
  um (o nome do script executando). O segundo � um array
  contendo os argumentos, come�ando com o nome do script no �ndice
  zero (<varname>$argv[0]</varname>).
 </para>
 <para>
  No programa acima � verificado se h� apenas um argumento
  fornecido. Se o argumento for <literal>--help</literal>,
  <literal>-help</literal>, <literal>-h</literal> ou <literal>-?</literal>,
  � impresso uma mensagem de ajuda, imprimindo o nome do script dinamicamente.
  Qualquer outro argumento � exibido como informado.
 </para>
 <para>
  Para rodar esse aplicativo nos Unix, basta torn�-lo
  execut�vel e o chamar diretamente como
  <literal>script.php exibaisso</literal> ou
  <literal>script.php -h</literal>. No Windows, voc� pode fazer um
  arquivo batch para esta tarefa:
 </para>
 <example>
  <title>Arquivo batch para rodar um script em linha de comando (script.bat)</title>
  <programlisting role="winbat">
@c:\php\php.exe -q script.php %1 %2 %3 %4
  </programlisting>
 </example>
 <para>
  Assumindo que voc� nomeou o programa acima como
  <filename>script.php</filename>, e voc� tem um
  <filename>php.exe</filename> em
  <filename>c:\php\php.exe</filename> este arquivo batch
  ir� rodar com os seguintes par�metros:
  <literal>script.bat exibaisso</literal> ou
  <literal>script.bat -h</literal>.
 </para>
 <para>
  Veja tamb�m a documenta��o da extens�o <link linkend="ref.readline">Readline</link>
  para mais fun��es que voc� pode usar
  para incrementar suas aplica��es para linha de comando em PHP.
 </para>
</chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

Reply via email to