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><code> [...] </code></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 <arquivo></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
<filename></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><?php</literal> e <literal>?></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 >,
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
-->