cvs: phpdoc-cs /features commandline.xml
[email protected] ("Jakub Vrana") Sun, 07 Dec 2003 14:06:29 -0000
| Newsgroups | php.doc.cs |
|---|---|
| Message-ID | <cvsvrana1070805989@cvsserver> |
vrana Sun Dec 7 09:06:29 2003 EDT
Added files:
/phpdoc-cs/features commandline.xml
Log:
Moved from appendices
vrana-20031207090629.txt
(text/plain, 9.5 KB)
Index: phpdoc-cs/features/commandline.xml
+++ phpdoc-cs/features/commandline.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- EN-Revision: 1.9 Maintainer: luk Status: ready -->
<!--
TODO:
The command line options not in the
list, but in the -h output below:
-e, -z
It would be best to document these, and
collect more info about -c and -d!
-->
<appendix id="commandline">
<title>Pou¾ití PHP z pøíkazové øádky</title>
<para>
Mo¾nosti PHP pøi spou¹tìní z pøíkazové øádky pøiná¹ejí mnoho u¾itku,
pokud chcete ladit nebo testovat va¹e nastavení PHP, hodí se v¹ak
i pro pøípady, kdy byste rádi pou¾ili PHP pro jiné úèely ne¾ WWW
skriptování.
</para>
<para>
Uvìdomte si, ¾e mù¾ete v¾dy smìrovat výstup programu PHP do vnìj¹ího
souboru pomocí znaku >, tak¾e <literal>php -q test.php >
test.html</literal> vytiskne výstup <filename>test.php</filename>
bez HTTP hlavièek do <filename>test.html</filename> ve stejném adresáøi.
</para>
<para>
Mo¾nosti pøíkazové øádky mù¾ete vyu¾ívat pouze tehdy, máte-li (spustitelný)
program PHP. Pokud jste zkompilovali pouze modul do serveru a nemáte na
poèítaèi ¾ádnou CGI verzi, nemù¾ete pøíkazovou øádku pou¾ívat.
Pro u¾ivatele Windows je v binárním balíèku jak serverový modul, tak
spustitelný soubor nazvaný <filename>php.exe</filename>.
</para>
<para>
Tento seznem voleb pro pøíkazovou øádku je konzistentní s PHP 4.0.6.
Aktuální seznam vèetnì jednoøádkových popisù mù¾ete získat pomocí parametru
<literal>-h</literal>. Výstup <literal>php -h</literal> by mìl vypadat
pøibli¾nì takto:
<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>
Zde uvádíme nìkteré z nejdùle¾itìj¹ích voleb s detailním vysvìtlením.
</para>
<para>
<table>
<title>Volby pro pøíkazovou øádku</title>
<tgroup cols="2">
<thead>
<row>
<entry>Volba</entry>
<entry>Popis</entry>
</row>
</thead>
<tbody>
<row>
<entry>-q</entry>
<entry>
Potlaèí výstup HTTP hlavièek. Normálnì PHP tiskne HTTP hlavièky
pro volající program (typicky WWW server) k pøedání prohlí¾eèi.
Pøi pou¾ití pro aplikace spou¹tìné z pøíkazové øádky nemají hlavièky
smysl.
</entry>
</row>
<row>
<entry>-s</entry>
<entry>
Zobrazí barevnì vysvícený zdrojový soubor s daným názvem.
Je to toté¾, jako kdy¾ se zdroj vytiskne pomocí funkce
<function>highlight_file</function> v PHP skriptu.
</entry>
</row>
<row>
<entry>-f</entry>
<entry>
Parsuje daný soubor a hledá syntaktické a fatální chyby.
Tato volba implikuje -q. Pou¾ijte pro ladicí úèely
(debugging).
</entry>
</row>
<row>
<entry>-v</entry>
<entry>
Zavoláním PHP s tímto pøepínaèem si mù¾ete vypsat èíslo verze,
napø. 4.0.6.
</entry>
</row>
<row>
<entry>-C</entry>
<entry>
Za normálních okolností PHP mìní pracovní adresáø na ten, kde se
nachází spou¹tìný skript. To napøíklad umo¾òuje otvírat soubory
ve stejném adresáøi urèením pouhého názvu souboru (bez cesty).
Pokud byste toto chtìli potlaèit, pou¾ijte tuto volbu.
</entry>
</row>
<row>
<entry>-c</entry>
<entry>
Pou¾itím tohoto argumentu mù¾ete specifikovat alternativní
umístìní souboru <filename>php.ini</filename>, tak¾e PHP bude
hledat konfiguraèní soubor zde namísto implicitního umístìní.
</entry>
</row>
<row>
<entry>-d</entry>
<entry>
Touto volbou mù¾ete provést individuální nastavení
<filename>php.ini</filename> bìhem provádìní skriptu.
</entry>
</row>
<row>
<entry>-l</entry>
<entry>
Otestuje daný soubor na syntaktické chyby. Tato volba implikuje
-q. Pou¾ijte ji pro úèely ladìní. Nebudou se hledat fatální chyby
(jako jsou nedefinované funkce). Pokud chcete hledat i fatální
chyby, pou¾ijte -f.
</entry>
</row>
<row>
<entry>-m</entry>
<entry>
Pou¾itím této volby PHP vypí¹e zabudované (a naètené) PHP a Zend
moduly, èísla verzí PHP a Zend, a také krátkou informaci o
autorských právech k jádru Zend.
</entry>
</row>
<row>
<entry>-i</entry>
<entry>
Tento pøepínaè zavolá funkci <function>phpinfo</function> a vypí¹e
její výsledek. Pokud PHP nepracuje správnì, je dobré spustit
<literal>php -i</literal> a podívat se, zda se nevypsala nìjaká
chybová hlá¹ení pøed nebo uvnitø informaèních tabulek.
</entry>
</row>
<row>
<entry>-h</entry>
<entry>
Touto volbou získáte informace o aktuálních volbách pøíkazové øádky
a jednoøádkové popisy o tom, co dìlají.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Spustitelná verze PHP mù¾e být pou¾ita pro spou¹tìní skriptù absolutnì
nezávisle na webovském serveru. Pokud jste na unixovém systému, mù¾ete
do PHP skriptu pøidat speciální první øádek a udìlat z nìj spustitelný
program - systém bude vìdìt, jaký program by mìl skript zpracovávat.
Na Windows mù¾ete asociovat <literal>php.exe -q</literal> se souborovou
pøíponou <literal>.php</literal> (pro spou¹tìní dvojklikem), nebo mù¾ete
vytvoøit dávkový soubor pro spu¹tìní skriptu pøes PHP. První øádek skriptu
pro práci v Unixu nebude ve Windows vadit, tak¾e tímto zpùsobem mù¾ete
psát programy pro více platforem. Jednoduchý pøíklad psaní PHP programu
pro pøíkazovou øádku je uveden ní¾e.
</para>
<example>
<title>Skript urèený ke spou¹tìní z pøíkazové øádky (script.php)</title>
<programlisting role="php">
<![CDATA[
#!/usr/bin/php -q
<?php
if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>
This is a command line PHP script with one option.
Usage:
<?php echo $argv[0]; ?> <option>
<option> can be some word you would like
to print out. With the --help, -help, -h,
or -? options, you can get this help.
<?php
} else {
echo $argv[1];
}
?>
]]>
</programlisting>
</example>
<para>
Ve vý¹e uvedeném skriptu jsme pou¾ili speciální první øádek k indikaci,
¾e by tento soubor mìl být spou¹tìn pomocí PHP a nemìl by vypisovat
HTTP hlavièky. Jsou zde dvì promìnné, které mù¾ete pou¾ít pøi psaní
aplikací pro PHP spou¹tìných z pøíkazové øádky:
<varname>$argc</varname> a
<varname>$argv</varname>. První z nich je poèet argumentù + 1 (název
bì¾ícího skriptu). Druhá je pole obsahující argumenty, poèínaje názvem
skriptu jako èíslo 0 (<varname>$argv[0]</varname>).
</para>
<para>
V ukázkovém programu se testuje, zda je argumentù více èi ménì ne¾ jeden.
Pokud by argument byl <literal>--help</literal>,
<literal>-help</literal>, <literal>-h</literal> nebo <literal>-?</literal>,
vytiskne se nápovìda k programu vèetnì skuteèného názvu skriptu.
Pokud by byly pøidány nìjaké dal¹í argumenty, vytisknou se na výstup.
</para>
<para>
Pokud byste chtìli spou¹tìt uvedený skript pod Unixem, musíte ho udìlat
spustitelným (nastavit práva pro spou¹tìní), a pak jednodu¹e napsat
<literal>script.php vypis_tohle</literal> nebo
<literal>script.php -h</literal>. Na Windows musíte pro tento úkol vytvoøit
dávkový soubor:
</para>
<example>
<title>Dávkový soubor pro spou¹tìní PHP skriptu z pøíkazové øádky (script.bat)</title>
<programlisting role="winbat">
@c:\php\php.exe -q script.php %1 %2 %3 %4
</programlisting>
</example>
<para>
Za pøedpokladu, ¾e jste vý¹e uvedený program nazvali
<filename>script.php</filename> a soubor
<filename>php.exe</filename> máte ulo¾ený jako
<filename>c:\php\php.exe</filename>, mù¾ete tento dávkový soubor spou¹tìt
takto:
<literal>script.bat echothis</literal> nebo
<literal>script.bat -h</literal>.
</para>
<para>
Viz také dokumentaci roz¹íøení <link linkend="ref.readline">Readline</link>,
kde najdete více funkcí pro pou¾ití k aplikacím PHP spou¹tìných z
pøíkazové øádky.
</para>
</appendix>
<!-- 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:
-->