Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 703d980c580707c382b4e43e25965bc5 > files > 53

php-manual-pt_BR-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Utilizando o PHP na linha de comando</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Manual do PHP"
HREF="index.html"><LINK
REL="UP"
TITLE="Características"
HREF="features.html"><LINK
REL="PREVIOUS"
TITLE="Funções restringidas/desabilitadas pelo modo seguro"
HREF="features.safe-mode.functions.html"><LINK
REL="NEXT"
TITLE="Referência das Funções"
HREF="funcref.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Manual do PHP</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="features.safe-mode.functions.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="funcref.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="features.commandline"
>Capítulo 43. Utilizando o PHP na linha de comando</A
></H1
><P
>&#13;  A partir versão 4.3.0, o PHP suporta um novo tipo
  <TT
CLASS="literal"
>SAPI</TT
> (Server Application Programming Interface)
  chamado <TT
CLASS="literal"
>CLI</TT
> que significa <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Command Line
  Interface</I
></SPAN
>. Como o próprio nome indica, essa <TT
CLASS="literal"
>SAPI</TT
>
  tem foco no desenvolvimento de aplicações shell (ou no terminal/linha de comando) com
  o PHP. Há algumas diferenças entre a
  a <TT
CLASS="literal"
>CLI SAPI</TT
> e outras <TT
CLASS="literal"
>SAPI</TT
>s que são
  explicadas neste capítulo. Mas é errado dizer que
  a versão <TT
CLASS="literal"
>CLI</TT
> e <TT
CLASS="literal"
>CGI</TT
> são SAPIs
  diferentes pelo motivo que elas compartilham muitos comportamentos idênticos.
 </P
><P
>&#13;  A <TT
CLASS="literal"
>CLI SAPI</TT
> foi liberada primeiramente com o
  PHP 4.2.0, mas ainda em estágio experimental, sendo necessário
  ativá-la explicitamente com a opção <CODE
CLASS="option"
>--enable-cli</CODE
> durante o
  <TT
CLASS="literal"
>./configure</TT
>. Desde o PHP 4.3.0 a
  <TT
CLASS="literal"
>CLI SAPI</TT
> não mais é experimental e a opção
  <CODE
CLASS="option"
>--enable-cli</CODE
> está ligada por default. você pode usar a opção
  <CODE
CLASS="option"
>--disable-cli</CODE
> para desativá-la.
 </P
><P
>&#13;  Desde o PHP 4.3.0, o nome, localização e existência dos executáveis CLI e CGI
  podem mudar dependendo de como o PHP foi instalado no seu sistema. Por padrão,
  quando executado o <B
CLASS="command"
>make</B
>, ambos CGI e CLI são compilados e
  colocados em <TT
CLASS="filename"
>sapi/cgi/php</TT
> e <TT
CLASS="filename"
>sapi/cli/php</TT
>,
  respectivamente, no seu diretório de fontes PHP. Note que que ambas tem
  o nome php. O que acontece durante o <B
CLASS="command"
>make install</B
> depende dos parâmetros do
  configure. Se o módulo SAPI é escolhido durante o configure, como o apxs, ou a opção
  <CODE
CLASS="option"
>--disable-cgi</CODE
> é utilizada, a versão CLI é copiada para
  <TT
CLASS="filename"
>{PREFIX}/bin/php</TT
> durante o <B
CLASS="command"
>make install</B
>
  em vez da versão CGI ser colocada aqui. Então, por exemplo, se você tiver <CODE
CLASS="option"
>--with--apxs
  </CODE
> na sua linha de configuração, então a versão CLI é copiada para
  <TT
CLASS="filename"
>{PREFIX}/bin/php</TT
> durante o <B
CLASS="command"
>make
  install</B
>. Se você quiser sobrescrever a instalação do executável CGI,
  use <B
CLASS="command"
>make install-cli</B
> depois do <B
CLASS="command"
>make
  install</B
>. Alternativamente, você pode especificar <CODE
CLASS="option"
>&#13;  --disable-cgi</CODE
> em seu configure.
 </P
><P
>&#13;  <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
    Por serem ambos <CODE
CLASS="option"
>--enable-cli</CODE
> e
    <CODE
CLASS="option"
>--enable-cgi</CODE
> ligados por padrão,
    ter um <CODE
CLASS="option"
>--enable-cli</CODE
> em seu configure
    não significa necessariamente que a versão CLI será copiada para
    <TT
CLASS="filename"
>{PREFIX}/bin/php</TT
> durante o <B
CLASS="command"
>make install</B
>.
   </P
></BLOCKQUOTE
></DIV
>
 </P
><P
>&#13;  Os pacotes para Windows distribuidos entre o PHP 4.2.0 e PHP 4.2.3 forneciam a versão CLI
  com o nome <TT
CLASS="filename"
>php-cli.exe</TT
>, na mesma pasta que a versão CGI
  <TT
CLASS="filename"
>php.exe</TT
>. A partir do PHP 4.3.0, os pacotes Windows
  distribuem a versão CLI como <TT
CLASS="filename"
>php.exe</TT
> em uma pasta separada,
  chamada <TT
CLASS="filename"
>cli</TT
> ou seja: <TT
CLASS="filename"
>cli/php.exe
  </TT
>. A partir do PHP 5, a versão CLI também é distribuída no diretório principal, com o nome
  <TT
CLASS="filename"
>php.exe</TT
>. A versão CGI é distribuída com o nome
  <TT
CLASS="filename"
>php-cgi.exe</TT
>.
 </P
><P
>&#13;  A partir do PHP 5, um novo arquivo <TT
CLASS="filename"
>php-win.exe</TT
> começou a ser distribuído.
  Esta versão é igual a versão CLI, exceto que esse php-win não exibe nenhum
  output e também não disponibiliza nenhum console (nenhuma caixa de texto aparece na tela).
  Este comportamento é semelhante ao do php-gtk. Você pode configurar esse modo com
  <CODE
CLASS="option"
>--enable-cli-win32</CODE
>.
 </P
><P
>&#13;  <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Que versão de SAPI eu tenho?: </B
>
    Na linha de comando, digitando <B
CLASS="command"
>php -v</B
>, ele lhe dirá
    se o <TT
CLASS="filename"
>php</TT
> é CGI ou CLI. Veja também a função
    <A
HREF="function.php-sapi-name.html"
><B
CLASS="function"
>php_sapi_name()</B
></A
> e a constante <TT
CLASS="constant"
><B
>&#13;    PHP_SAPI</B
></TT
>.
   </P
></BLOCKQUOTE
></DIV
>
 </P
><P
>&#13;  <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
    Um manual Unix <TT
CLASS="literal"
>man</TT
> foi acrescentado no PHP 4.3.2. Você pode
    vê-lo digitando <B
CLASS="command"
>man php</B
> em seu ambiente shell.
   </P
></BLOCKQUOTE
></DIV
>
 </P
><P
>&#13;  Diferenças importantes das <TT
CLASS="literal"
>CLI SAPI</TT
> comparada com outras
  <TT
CLASS="literal"
>SAPI</TT
>s:
  <P
></P
><UL
><LI
><P
>&#13;     Diferentemente da <TT
CLASS="literal"
>CGI SAPI</TT
>, nenhum header é impresso
     na saída.
    </P
><P
>&#13;     A <TT
CLASS="literal"
>CGI SAPI</TT
> possui um meio de suprimir os headers
     HTTP, mas não há uma chave equivalente para ativá-los na <TT
CLASS="literal"
>CLI
     SAPI</TT
>.
    </P
><P
>&#13;     A versão CLI é definida silenciosa por padrão. Mas as chaves <CODE
CLASS="option"
>-q</CODE
>
     e <CODE
CLASS="option"
>--no-header</CODE
> são mantidas para compatibilidade, de 
     forma que você possa utilizar scripts CGI antigos.
    </P
><P
>&#13;     Ela não altera o diretório de execução para o do script.
     (as chaves <CODE
CLASS="option"
>-C</CODE
> e <CODE
CLASS="option"
>--no-chdir</CODE
> também são mantidas para compatibilidade).
    </P
><P
>&#13;     Mensagens de erro em texto simples (sem formatação HTML).
    </P
></LI
><LI
><P
>&#13;     Estas são as diretivas do <TT
CLASS="filename"
>php.ini</TT
> que são sobrescritas pela <TT
CLASS="literal"
>CLI
     SAPI</TT
> porque não fazem sentido no ambiente shell:
    </P
><P
>&#13;     <DIV
CLASS="table"
><A
NAME="AEN7714"
></A
><P
><B
>Tabela 43-1. Diretivas <TT
CLASS="filename"
>php.ini</TT
> sobrescritas</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Diretiva</TH
><TH
>Valor default <TT
CLASS="literal"
>CLI SAPI</TT
></TH
><TH
>Comentários</TH
></TR
></THEAD
><TBODY
><TR
><TD
><A
HREF="ref.errorfunc.html#ini.html-errors"
>html_errors</A
></TD
><TD
><TT
CLASS="constant"
><B
>FALSE</B
></TT
></TD
><TD
>&#13;          Pode ser bem difícil de ler mensagens de erro no seu shell quando
          elas estão embebidas dentro de tags <TT
CLASS="literal"
>HTML</TT
>,
          por isso essa diretiva tem default para <TT
CLASS="constant"
><B
>FALSE</B
></TT
>.
         </TD
></TR
><TR
><TD
><A
HREF="ref.outcontrol.html#ini.implicit-flush"
>implicit_flush</A
></TD
><TD
><TT
CLASS="constant"
><B
>TRUE</B
></TT
></TD
><TD
>&#13;          Essa diretiva causa que qualquer saída gerada de um
          <A
HREF="function.print.html"
><B
CLASS="function"
>print()</B
></A
>, <A
HREF="function.echo.html"
><B
CLASS="function"
>echo()</B
></A
> e semelhantes sejam
          imediatamente escritas para o output e não cacheadas em nenhum buffer. Você
          ainda pode usar o <A
HREF="ref.outcontrol.html"
>output buffering</A
>
          se você precisa atrasar ou manipular a saída padrão.
         </TD
></TR
><TR
><TD
><A
HREF="ref.info.html#ini.max-execution-time"
>max_execution_time</A
></TD
><TD
>0 (unlimited)</TD
><TD
>&#13;          Devido as infinitas possibilidades da utilização do PHP em
          ambientes shell, o 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.
         </TD
></TR
><TR
><TD
><A
HREF="ini.core.html#ini.register-argc-argv"
>register_argc_argv</A
></TD
><TD
><TT
CLASS="constant"
><B
>TRUE</B
></TT
></TD
><TD
>&#13;         <P
>&#13;          Como essa diretiva é <TT
CLASS="constant"
><B
>TRUE</B
></TT
> você sempre terá acesso as variáveis
          <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>argc</I
></SPAN
> (número de argumentos passados para a
          aplicação) e <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>argv</I
></SPAN
> (array dos argumentos
          informados) na <TT
CLASS="literal"
>CLI SAPI</TT
>.
         </P
>
         <P
>&#13;          A partir do PHP 4.3.0, as variáveis do PHP <CODE
CLASS="varname"
>$argc</CODE
>
          e <CODE
CLASS="varname"
>$argv</CODE
> são registradas e preenchidas com os valores
          apropriados quando utilizando a <TT
CLASS="literal"
>CLI SAPI</TT
>. Antes dessa versão,
          a criação dessas variáveis era controlada da mesma forma que as versões
          <TT
CLASS="literal"
>CGI</TT
> e <TT
CLASS="literal"
>MODULE</TT
>
          e precisava da diretiva PHP
          <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
> configurada
          para <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>on</I
></SPAN
>. Independentemente da versão ou da configuração
          de register_globals, você sempre poderá acessar esses dados através de
          <A
HREF="reserved.variables.html#reserved.variables.server"
>$_SERVER</A
> ou
          <CODE
CLASS="varname"
>$HTTP_SERVER_VARS</CODE
>. Exemplo:
          <CODE
CLASS="varname"
>$_SERVER['argv']</CODE
>
         </P
>
         </TD
></TR
></TBODY
></TABLE
></DIV
>
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Estas diretivas não podem ser inicializadas com outros valores do
      arquivo de configuração <TT
CLASS="filename"
>php.ini</TT
> 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, <A
HREF="ini.core.html#ini.register-argc-argv"
>register_argc_argv</A
>).
     </P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
>&#13;     Para facilicar a operação no ambiente shell, as seguintes constantes
     estão definidas:
     <DIV
CLASS="table"
><A
NAME="AEN7775"
></A
><P
><B
>Tabela 43-2. Constantes específicas CLI</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>Constante</TH
><TH
>Descrição</TH
></TR
></THEAD
><TBODY
><TR
><TD
><TT
CLASS="constant"
><B
>STDIN</B
></TT
></TD
><TD
>&#13;         Um stream já aberto para o <TT
CLASS="literal"
>stdin</TT
>. Isto economiza
         ter de abrí-lo com 
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /><br />$stdin </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'php://stdin'</font><font color="#007700">, </font><font color="#DD0000">'r'</font><font color="#007700">);<br /><br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
>
         Se você precisa ler apenas uma linha do <TT
CLASS="literal"
>stdin</TT
>, você pode
         utilizar
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$line </font><font color="#007700">= </font><font color="#0000BB">trim</font><font color="#007700">(</font><font color="#0000BB">fgets</font><font color="#007700">(</font><font color="#0000BB">STDIN</font><font color="#007700">)); </font><font color="#FF8000">// lê uma linha do STDIN<br /></font><font color="#0000BB">fscanf</font><font color="#007700">(</font><font color="#0000BB">STDIN</font><font color="#007700">, </font><font color="#DD0000">"%d\n"</font><font color="#007700">, </font><font color="#0000BB">$number</font><font color="#007700">); </font><font color="#FF8000">// carrega number a partir do STDIN<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
>
         </TD
></TR
><TR
><TD
><TT
CLASS="constant"
><B
>STDOUT</B
></TT
></TD
><TD
>&#13;         Um stream já aberto para o <TT
CLASS="literal"
>stdout</TT
>. Isto economiza
         ter de abrí-lo com
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /><br />$stdout </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'php://stdout'</font><font color="#007700">, </font><font color="#DD0000">'w'</font><font color="#007700">);<br /><br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
>
         </TD
></TR
><TR
><TD
><TT
CLASS="constant"
><B
>STDERR</B
></TT
></TD
><TD
>&#13;         Um stream já aberto para o <TT
CLASS="literal"
>stderr</TT
>. Isto economiza
         ter de abrí-lo com
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /><br />$stderr </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'php://stderr'</font><font color="#007700">, </font><font color="#DD0000">'w'</font><font color="#007700">);<br /><br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
>
         </TD
></TR
></TBODY
></TABLE
></DIV
>
    </P
><P
>&#13;     Considerando isso, você não precisará mais abrí-los, por exemplo o
     <TT
CLASS="literal"
>stderr</TT
> você mesmo, mas simplesmente usar a constante em vez
     do recurso stream:
     <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="shell"
>php -r 'fwrite(STDERR, "stderr\n");'</PRE
></TD
></TR
></TABLE
>
     Você não precisa fechar explicitamente esses streams. Isto é realizado automaticamente
     pelo PHP.
    </P
></LI
><LI
><P
>&#13;     A <TT
CLASS="literal"
>CLI SAPI</TT
> <SPAN
CLASS="strong"
><B
CLASS="emphasis"
>não</B
></SPAN
> modifica o diretório de execução atual para o diretório
     onde o script é interpretado!
    </P
><P
>&#13;     Exemplo mostrando a diferença da <TT
CLASS="literal"
>CGI SAPI</TT
>:
     <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /></font><font color="#FF8000">/* Nossa aplicação de teste chamada test.php */<br /></font><font color="#007700">echo </font><font color="#0000BB">getcwd</font><font color="#007700">(), </font><font color="#DD0000">"\n"</font><font color="#007700">;<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
>
    </P
><P
>&#13;     Quando utilizando a versão <TT
CLASS="literal"
>CGI</TT
>, a saída é:
     <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ pwd
/tmp

$ php -q outro_diretorio/test.php
/tmp/outro_diretorio</PRE
></TD
></TR
></TABLE
>
     Isto mostra como o PHP modifica o diretório atual
     para aquela onde o script é executado.
    </P
><P
>&#13;     Utilizando a versão <TT
CLASS="literal"
>CLI SAPI</TT
>:
     <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ pwd
/tmp

$ php -f outro_diretorio/test.php
/tmp</PRE
></TD
></TR
></TABLE
>
     E isto mostra a grande flexibilidade ferramentas shell em
     PHP.
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      A <TT
CLASS="literal"
>CGI SAPI</TT
> suporta o comportamento da <TT
CLASS="literal"
>CLI SAPI</TT
>
      utilizando a chave <CODE
CLASS="option"
>-C</CODE
> quando de sua execução na
      linha de comando.
     </P
></BLOCKQUOTE
></DIV
></LI
></UL
>
 </P
><P
>&#13;  A lista de opções de linha de comando fornecidas pelo binário do PHP
  pode ser solicitada a qualquer tempo executando o PHP com a
  opção <CODE
CLASS="option"
>-h</CODE
>:
  <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>Usage: php [options] [-f] &#60;file&#62; [args...]
       php [options] -r &#60;code&#62; [args...]
       php [options] [-- args...]
  -s               Display colour syntax highlighted source.
  -w               Display source with stripped comments and whitespace.
  -f &#60;file&#62;        Parse &#60;file&#62;.
  -v               Version number
  -c &#60;path&#62;|&#60;file&#62; 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 &#60;file&#62;        Load Zend extension &#60;file&#62;.
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -i               PHP information
  -r &#60;code&#62;        Run PHP &#60;code&#62; without using script tags &#60;?..?&#62;
  -h               This help

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin</PRE
></TD
></TR
></TABLE
>
 </P
><P
>&#13;  A <TT
CLASS="literal"
>CLI SAPI</TT
> fornecer três maneiras diferentes para você
  executar seu código PHP:
  <P
></P
><OL
TYPE="1"
><LI
><P
>&#13;     Chamando o PHP para executar um arquivo determinado.
    </P
><P
>&#13;     <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>php my_script.php

php -f my_script.php</PRE
></TD
></TR
></TABLE
>
     De ambas maneiras (utilizando ou não a opção <CODE
CLASS="option"
>-f</CODE
>) o
     arquivo <TT
CLASS="filename"
>my_script.php</TT
> é executado. Você pode escolher qualquer arquivo para
     executar --- seus scripts PHP não precisam terminar com a
     extensão <TT
CLASS="literal"
>.php</TT
>, podendo ter qualquer nome ou extensão
     que você deseje.
    </P
></LI
><LI
><P
>&#13;     Passar o código PHP para execução diretamente a linha
     de comando.
    </P
><P
>&#13;     <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>php -r 'print_r(get_defined_constants());'</PRE
></TD
></TR
></TABLE
>
     É preciso ter especial cuidado com a substituição de variáveis shell e
     delimitação de strings utilizada.
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Leia o exemplo cuidadosamente, observando que não há tags de abertura ou fechamento! A
      opção <CODE
CLASS="option"
>-r</CODE
> simplesmente não precisa delas. Utilizando-as você 
      obterá erros de interpretação.
     </P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
>&#13;     Fornece código PHP para interpretação via a entrada padrão
     (<TT
CLASS="literal"
>stdin</TT
>).
    </P
><P
>&#13;     Isto mostra a habilidade poderosa de como criar dinamicamente
     código PHP e fornecê-lo ao binário, como demonstrado
     neste exemplo (apenas demonstrativo):
     <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ alguma_aplicacao | algum_filtro | php | sort -u &#62;final_output.txt</PRE
></TD
></TR
></TABLE
>
    </P
></LI
></OL
>
  Você não pode combinar nenhum das três maneiras para executar código.
 </P
><P
>&#13;  Assim como qualquer aplicação shell, não somente o binário do PHP
  aceita um certo número de argumentos, mas também seu script PHP
  também pode recebê-los. O número de argumentos que podem ser passados para seu script
  não é limitado ao PHP (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 <CODE
CLASS="varname"
>$argv</CODE
>. No índice zero sempre conterá o nome do
  script (podendo ser <TT
CLASS="literal"
>-</TT
> no caso de código PHP
  estar vindo da entrada padrão ou da opção de linha de comando
  <CODE
CLASS="option"
>-r</CODE
>). O segunda variável global
  <CODE
CLASS="varname"
>$argc</CODE
> contém o número de elementos no
  array <CODE
CLASS="varname"
>$argv</CODE
> (<SPAN
CLASS="strong"
><B
CLASS="emphasis"
>mas não</B
></SPAN
> o
  número de argumentos passados para seu script.
 </P
><P
>&#13;  Os argumentos que você deseja passar para seu script não podem começar com o caracter
  <TT
CLASS="literal"
>-</TT
> e isso não pode ser modificado.
  Passando argumentos para seu script que comecem com um
  <TT
CLASS="literal"
>-</TT
> causará problemas porque o PHP
  tentará manuseá-los. Para prevenir isso, utilize o separador de argumentos
  <TT
CLASS="literal"
>--</TT
>. Depois que esse separador é passado para o
  PHP, todos os argumentos restantes são repassados
  intocados para seu script.
 </P
><P
>&#13;  <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
># 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] &#60;file&#62; [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]=&#62;
  string(1) "-"
  [1]=&#62;
  string(2) "-h"
}</PRE
></TD
></TR
></TABLE
>
 </P
><P
>&#13;  Entretanto, há ainda uma outra maneira de se utilizar o PHP no
  shell. Você pode escrever um script que na primeira linha tenha
  <TT
CLASS="literal"
>#!/usr/bin/php</TT
> e em seguida
  código PHP normal, incluindo as tags de
  início e fim do PHP. Você também precisa configurar os atributos de
  execução do arquivo (por exemplo, <B
CLASS="command"
>chmod +x test</B
>) de forma que seu script
  seja executado normalmente como um script shell/Perl:
  <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
#!/usr/bin/php<br /><font color="#0000BB">&lt;?php<br />var_dump</font><font color="#007700">(</font><font color="#0000BB">$argv</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
>
  Assumindo que o arquivo foi nomeado como <TT
CLASS="filename"
>teste</TT
> e está no diretório
  atual, nós podemos fazer o seguinte:
  <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ chmod +x teste
$ ./test -h -- foo
array(4) {
  [0]=&#62;
  string(6) "./teste"
  [1]=&#62;
  string(2) "-h"
  [2]=&#62;
  string(2) "--"
  [3]=&#62;
  string(3) "foo"
}</PRE
></TD
></TR
></TABLE
>
  Como você viu, dessa forma não há problemas em passar parâmetros para seu script
  que comecem com o caracter <TT
CLASS="literal"
>-</TT
>
 </P
><P
>&#13;  Opções com nomes "longos" foram disponibilizados a partir do PHP 4.3.3.
  <DIV
CLASS="table"
><A
NAME="AEN7870"
></A
><P
><B
>Tabela 43-3. Opções de linha de comando</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>Opção</TH
><TH
>Opção Longa</TH
><TH
>Descrição</TH
></TR
></THEAD
><TBODY
><TR
><TD
>-s</TD
><TD
>--syntax-highlight</TD
><TD
>&#13;       <P
>&#13;        Mostra o código fonte com destaque de cores.
       </P
>
       <P
>&#13;        Esta opção usa o mecanismo interno para interpretar o arquivo e produzir
        uma versão <TT
CLASS="literal"
>HTML</TT
> do fonte com destaque de cores e a envia para
        a saída padrão. Note que ele somente gerará blocos de
        <TT
CLASS="literal"
>&#60;code&#62; [...] &#60;/code&#62;</TT
>,
        mas não headers <TT
CLASS="literal"
>HTML</TT
>.
       </P
>
       <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
         Esta opção não funciona juntamente com a opção <CODE
CLASS="option"
>-r</CODE
>.
         
        </P
></BLOCKQUOTE
></DIV
>
      </TD
></TR
><TR
><TD
>-s</TD
><TD
>--syntax-highlighting</TD
><TD
>&#13;       <P
>&#13;        Apelido para <CODE
CLASS="option"
>--syntax-highlight</CODE
>.
       </P
>
      </TD
></TR
><TR
><TD
>-w</TD
><TD
>--strip</TD
><TD
>&#13;       <P
>&#13;        Mostra o fonte sem comentários e espaços em branco.
       </P
>
       <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
         Esta opção não funciona juntamente com a opção <CODE
CLASS="option"
>-r</CODE
>.

        </P
></BLOCKQUOTE
></DIV
>
      </TD
></TR
><TR
><TD
>-f</TD
><TD
>--file</TD
><TD
>&#13;       <P
>&#13;        Interpreta e executa o arquivo informado com a opção <CODE
CLASS="option"
>-f</CODE
>
        Esta diretiva é opcional e pode ser deixada de lado. Informar somente
        o nome do arquivo para execução é suficiente.
       </P
>
      </TD
></TR
><TR
><TD
>-v</TD
><TD
>--version</TD
><TD
>&#13;       <P
>&#13;        Imprime as versões o PHP, PHP SAPI e Zend para a saída padrão, por exemplo:
        <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies</PRE
></TD
></TR
></TABLE
>
       </P
>
      </TD
></TR
><TR
><TD
>-c</TD
><TD
>--php-ini</TD
><TD
>&#13;       <P
>&#13;        Esta opção informa um diretório onde procurar pelo
        <TT
CLASS="filename"
>php.ini</TT
> ou especifica um arquivo <TT
CLASS="literal"
>INI</TT
> personalizado
        diretamente (não presisa ser obrigatoriamente <TT
CLASS="filename"
>php.ini</TT
>), por exemplo:
        <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php</PRE
></TD
></TR
></TABLE
>
        Se você não usar essa opção, o arquivo será procurado nos
        <A
HREF="configuration.html#configuration.file"
>locais padrão</A
>.
       </P
>
      </TD
></TR
><TR
><TD
>-n</TD
><TD
>--no-php-ini</TD
><TD
>&#13;       <P
>&#13;        Ignora todo o <TT
CLASS="filename"
>php.ini</TT
>. Esta chave está disponível desde o PHP 4.3.0.
       </P
>
      </TD
></TR
><TR
><TD
>-d</TD
><TD
>--define</TD
><TD
>&#13;       <P
>&#13;        Esta opção permite definir um valor personalizado para qualquer diretiva
        de configuração permitida no <TT
CLASS="filename"
>php.ini</TT
>. Sintaxe:
        <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>-d diretiva[=valor]</PRE
></TD
></TR
></TABLE
>
       </P
>
       <P
>&#13;        Exemplos (linhas cortadas para melhor visualização):
        <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
># 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"</PRE
></TD
></TR
></TABLE
>
       </P
>
      </TD
></TR
><TR
><TD
>-a</TD
><TD
>--interactive</TD
><TD
>&#13;       <P
>&#13;        Roda o PHP em modo interativo.
        
       </P
>
      </TD
></TR
><TR
><TD
>-e</TD
><TD
>--profile-info</TD
><TD
>&#13;       <P
>&#13;        Gera informações estendidas para o debugador/profiler.
        
       </P
>
      </TD
></TR
><TR
><TD
>-z</TD
><TD
>--zend-extension</TD
><TD
>&#13;       <P
>&#13;        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 <TT
CLASS="filename"
>/etc/ld.so.conf</TT
> 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 PHP apenas tente
        carregar a extensão no caminho relativo ao diretório atual.
       </P
>
      </TD
></TR
><TR
><TD
>-l</TD
><TD
>--syntax-check</TD
><TD
>&#13;       <P
>&#13;        Esta opção fornece uma maneira conveniente apenas realizar uma checagem de sintaxe
        no código PHP fornecido. No sucesso, o texto
        <TT
CLASS="literal"
>No syntax errors detected in &#60;arquivo&#62;</TT
> é
        impresso na saída padrão e informado o código de saida de sistema
        <TT
CLASS="literal"
>0</TT
>. Em caso de erro, o texto <TT
CLASS="literal"
>Errors parsing
        &#60;filename&#62;</TT
> juntamente com o a mensagem do interpretador
        interno é impressa para a saída padrão e o código de saída de sistema é
        <TT
CLASS="literal"
>255</TT
>.
       </P
>
       <P
>&#13;        Esta opção não procura por erros fatais (como funções não definidas). Use
        <CODE
CLASS="option"
>-f</CODE
> se você deseja detectar erros fatais também.
       </P
>
       <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
         Esta opção não trabalha com a opção <CODE
CLASS="option"
>-r</CODE
>

        </P
></BLOCKQUOTE
></DIV
>
      </TD
></TR
><TR
><TD
>-m</TD
><TD
>--modules</TD
><TD
>&#13;       <P
>&#13;        Utilizando essa opção, o PHP imprime os módulos PHP e Zend compilados
        (e carregados):
        <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]</PRE
></TD
></TR
></TABLE
>
       </P
>
      </TD
></TR
><TR
><TD
>-i</TD
><TD
>--info</TD
><TD
>&#13;       Esta opção de linha de comando chama a função <A
HREF="function.phpinfo.html"
><B
CLASS="function"
>phpinfo()</B
></A
> e imprime
       seus resultados. Se o PHP não está funcionando bem, é
       interessante fazer um <B
CLASS="command"
>php -i</B
> para observar qualquer mensagem
       de erro impressa antes ou dentro das tabelas de informação.
       Utilizando o modo CGI o resultado impresso está em <TT
CLASS="literal"
>HTML</TT
>, e
       ela por isso é um pouco grande.
      </TD
></TR
><TR
><TD
>-r</TD
><TD
>--run</TD
><TD
>&#13;       <P
>&#13;        Esta opção permite a execução de código PHP direto da
        linha de comando. As tags de início e fim do PHP
        (<TT
CLASS="literal"
>&#60;?php</TT
> e <TT
CLASS="literal"
>?&#62;</TT
>)
        <SPAN
CLASS="strong"
><B
CLASS="emphasis"
>não são</B
></SPAN
> necessárias e causarão erros
        de interpretação se informadas.
       </P
>
       <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
         Cuidados deverão ser tomados utilizando dessa forma para
         evitar que haja substituição de variáveis pelo
         shell.
        </P
><P
>&#13;         Exemplo mostrando um erro de interpretação
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='</PRE
></TD
></TR
></TABLE
>
         O problema aqui decorre do sh/bash realizar substituições de variáveis
         sempre quando se utilizam aspas (<TT
CLASS="literal"
>"</TT
>). Desde que a
         variável <CODE
CLASS="varname"
>$foo</CODE
> não deve estar definida, ela é
         substituída por nada o que faz que o código passado para o
         PHP para execução seja:
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ php -r " = get_defined_constants();"</PRE
></TD
></TR
></TABLE
>
         A maneira correta é utilizar apóstrofos (<TT
CLASS="literal"
>'</TT
>).
         Variáveis em strings delimitadas por apóstrofos não são substituidas
         pelo sh/bash.
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="screen"
>$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=&#62;
  int(1)
  ["E_WARNING"]=&#62;
  int(2)
  ["E_PARSE"]=&#62;
  int(4)
  ["E_NOTICE"]=&#62;
  int(8)
  ["E_CORE_ERROR"]=&#62;
  [...]</PRE
></TD
></TR
></TABLE
>
         Se você estiver utilizando um shell diferente do sh/bash, você pode experimentar
         comportamentos diferenciados. Sinta-se livre para abrir um aviso de bug em
         <A
HREF="http://bugs.php.net/"
TARGET="_top"
>http://bugs.php.net/</A
> ou enviar um e-mail para
         phpdoc@lists.php.net.

         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. 
        </P
></BLOCKQUOTE
></DIV
>
       <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
         <CODE
CLASS="option"
>-r</CODE
> está disponível na SAPI <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>CLI</I
></SPAN
>
         SAPI mas não na SAPI <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>CGI</I
></SPAN
>.
        </P
></BLOCKQUOTE
></DIV
>
      </TD
></TR
><TR
><TD
>-h</TD
><TD
>--help</TD
><TD
>&#13;       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.
      </TD
></TR
><TR
><TD
>-?</TD
><TD
>--usage</TD
><TD
>&#13;       Apelido para <CODE
CLASS="option"
>--help</CODE
>.
      </TD
></TR
></TBODY
></TABLE
></DIV
>
 </P
><P
>&#13;  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 <TT
CLASS="filename"
>php.exe</TT
> com o clique duplo em arquivos
  <TT
CLASS="literal"
>.php</TT
> 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:
 </P
><P
>&#13;  <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN8021"
></A
><P
><B
>Exemplo 43-1. Um script para rodar na linha de comando (script.php)</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
#!/usr/bin/php<br /><font color="#0000BB">&lt;?php<br /><br /></font><font color="#007700">if (</font><font color="#0000BB">$argc </font><font color="#007700">!= </font><font color="#0000BB">2 </font><font color="#007700">|| </font><font color="#0000BB">in_array</font><font color="#007700">(</font><font color="#0000BB">$argv</font><font color="#007700">[</font><font color="#0000BB">1</font><font color="#007700">], array(</font><font color="#DD0000">'--help'</font><font color="#007700">, </font><font color="#DD0000">'-help'</font><font color="#007700">, </font><font color="#DD0000">'-h'</font><font color="#007700">, </font><font color="#DD0000">'-?'</font><font color="#007700">))) {<br /></font><font color="#0000BB">?&gt;<br /></font><br />Este é um script de linha de comando com um parâmetro.<br /><br />&nbsp;&nbsp;Uso:<br />&nbsp;&nbsp;<font color="#0000BB">&lt;?php </font><font color="#007700">echo </font><font color="#0000BB">$argv</font><font color="#007700">[</font><font color="#0000BB">0</font><font color="#007700">]; </font><font color="#0000BB">?&gt;</font> &lt;opcao&gt;<br /><br />&nbsp;&nbsp;&lt;opcao&gt; pode ser qualquer palavra que<br />&nbsp;&nbsp;você queira imprimir. Com as opções --help, -help, -h<br />&nbsp;&nbsp;ou -?, você pode obter essa ajuda.<br /><br /><font color="#0000BB">&lt;?php<br /></font><font color="#007700">} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;echo </font><font color="#0000BB">$argv</font><font color="#007700">[</font><font color="#0000BB">1</font><font color="#007700">];<br />}<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
 </P
><P
>&#13;  No script acima, nós utilizamos uma primeira linha especial para indicar
  que este arquivo precisa rodar pelo PHP. Como nós trabalhamos com a versão CLI
  aqui, não serão impressos headers HTTP. Há duas variáveis que você precisa conhecer para escrever aplicações
  em linha de comando com o PHP: <CODE
CLASS="varname"
>$argc</CODE
> e
  <CODE
CLASS="varname"
>$argv</CODE
>. 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 (<CODE
CLASS="varname"
>$argv[0]</CODE
>).
 </P
><P
>&#13;  No programa acima é verificado se há apenas um argumento
  fornecido. Se o argumento for <CODE
CLASS="option"
>--help</CODE
>,
  <CODE
CLASS="option"
>-help</CODE
>, <CODE
CLASS="option"
>-h</CODE
> ou <CODE
CLASS="option"
>-?</CODE
>,
  é impresso uma mensagem de ajuda, imprimindo o nome do script dinamicamente.
  Qualquer outro argumento é exibido como informado.
 </P
><P
>&#13;  Para rodar esse aplicativo nos Unix, basta torná-lo
  executável e o chamar diretamente como
  <B
CLASS="command"
>script.php exibaisso</B
> ou
  <B
CLASS="command"
>script.php -h</B
>. No Windows, você pode fazer um
  arquivo batch para esta tarefa:
 </P
><P
>&#13;  <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN8037"
></A
><P
><B
>Exemplo 43-2. Arquivo batch para rodar um script em linha de comando (script.bat)</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="winbat"
>@c:\php\cli\php.exe script.php %1 %2 %3 %4</PRE
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
 </P
><P
>&#13;  Assumindo que você nomeou o programa acima como
  <TT
CLASS="filename"
>script.php</TT
>, e que tem sua versão
  CLI <TT
CLASS="filename"
>php.exe</TT
> em
  <TT
CLASS="filename"
>c:\php\cli\php.exe</TT
> este arquivo batch
  irá rodar com os seguintes parâmetros:
  <B
CLASS="command"
>script.bat exibaisso</B
> ou
  <B
CLASS="command"
>script.bat -h</B
>.
 </P
><P
>&#13;  Veja também a documentação da extensão <A
HREF="ref.readline.html"
>Readline</A
>
  para mais funções que você pode usar
  para incrementar suas aplicações para linha de comando em PHP.
 </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="features.safe-mode.functions.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Principal</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="funcref.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Funções restringidas/desabilitadas pelo modo seguro</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="features.html"
ACCESSKEY="U"
>Acima</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Referência das Funções</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>