ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ PHP-ΡΠ°ΠΉΠ»ΠΎΠ²
Π CLI SAPI Π΅ΡΡΡ ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΠΏΡΡΠΊΠ° PHP-ΠΊΠΎΠ΄Π°:
-
Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°.
ΠΠ±Π° ΡΠΏΠΎΡΠΎΠ±Π° β Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ -f ΠΈΠ»ΠΈ Π±Π΅Π· β Π·Π°ΠΏΡΡΡΡΡ
ΡΠ°ΠΉΠ» my_script.php. ΠΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊΠΎΠΉ
ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°ΡΡ; Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΉΠ»Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .php.
-
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° PHP-ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ
ΠΈΠ·-Π·Π° ΡΠΈΡΠΊΠ° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² Π΄Π²ΠΎΠΉΠ½ΡΡ
ΠΊΠ°Π²ΡΡΠΊΠ°Ρ
.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΊΠΎΠ΄ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΡ
ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΡ
ΡΠ΅Π³ΠΎΠ²!
ΠΠΏΡΠΈΠΈ -r ΡΠ΅Π³ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ, ΠΈ Π΄Π°ΠΆΠ΅
Π²ΡΠ·ΠΎΠ²ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠ°Π·Π±ΠΎΡΠ°.
-
ΠΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ PHP-ΠΊΠΎΠ΄ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²Π²ΠΎΠ΄Π°
(stdin).
ΠΡΠΎ Π΄Π°ΡΡ ΠΌΠΎΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ PHP-ΠΊΠΎΠ΄ ΠΈ
ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠΎΠΌ
(Π²ΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΌ) ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ
ΡΡΡΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» PHP
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π½ΠΎ PHP-ΡΠΊΡΠΈΠΏΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. PHP Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²,
ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ
Π² ΡΠΊΡΠΈΠΏΡ (ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ
Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠ³ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ;
ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎΠ³ΠΎ Π»ΠΈΠΌΠΈΡΠ° Ρ
Π²Π°ΡΠ°Π΅Ρ). ΠΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ
Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ $argv. ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ β
Π½ΠΎΠ»Ρ β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·Π²Π°Π»ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ
ΡΡΡΠΎΠΊΠΈ Π½Π° Π»Π΅ΡΡ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ -r, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° $argv[0] Π±ΡΠ΄Π΅Ρ Β«Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊΒ» (Standard input code);
Π΄ΠΎ PHP 7.2.0 ΡΡΠΎ Π±ΡΠ» Π΄Π΅ΡΠΈΡ ("-"). Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π²Π΅ΡΠ½ΠΎ ΠΈ Π΄Π»Ρ ΠΊΠΎΠ΄Π°,
ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΈΠ· STDIN.
ΠΡΠΎΡΠ°Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ β
$argc, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ $argv,
Π° Π½Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²,
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΡΠΊΡΠΈΠΏΡΡ.
Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ PHP ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΊΡΠΈΠΏΡΡ Π±Π΅Π· ΡΠΈΠΌΠ²ΠΎΠ»Π° -.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π² ΡΠΊΡΠΈΠΏΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΊΠ°Π·Π°Π»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» -,
Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ PHP-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°
ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
ΠΏΠΎΡΠ»Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΏΠΈΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² --, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠΎΡΠ»Π΅ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ PHP-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠΊΡΠΈΠΏΡ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ.
ΠΡΠΈ ΡΡΠΎΠΌ Π² Unix-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΡΠΊΠ°
PHP-ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ΅Π±Π°Π½Π³ #! (ΠΎΡ Π°Π½Π³Π». hashbang) ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΏΡΡΡ
ΠΊ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ PHP CLI: #!/usr/bin/php.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ PHP-ΠΊΠΎΠ΄,
ΠΎΠ±ΡΠ°ΠΌΠ»ΡΠ½Π½ΡΠΉ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌ ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠΌ PHP-ΡΠ΅Π³Π°ΠΌΠΈ. Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ
Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π·Π°ΠΏΡΡΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ chmod +x test), ΡΠΊΡΠΈΠΏΡ ΡΡΠ°Π½Π΅Ρ Π³ΠΎΡΠΎΠ²
ΠΊ Π·Π°ΠΏΡΡΠΊΡ ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ»ΠΈ perl-ΡΠΊΡΠΈΠΏΡ:
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΠ°ΠΏΡΡΠΊ PHP-ΡΠΊΡΠΈΠΏΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ
#!/usr/bin/php
<?php
var_dump($argv);
?>
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π°Π·Π²Π°Π½ test
ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
$ chmod +x test
$ ./test -h -- foo
array(4) {
[0]=>
string(6) "./test"
[1]=>
string(2) "-h"
[2]=>
string(2) "--"
[3]=>
string(3) "foo"
}
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ
ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ -.
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ PHP-ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° PHP-ΡΠΊΡΠΈΠΏΡΠΎΠ²
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π±ΠΎΡΡ Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅,
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ°ΠΉΠ»Π° #! (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΊΠΆΠ΅ "shebang")
ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ.
ΠΠ° Windows-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ php.exe Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²
Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ .php ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ
(.bat) ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ PHP.
Π‘ΡΡΠΎΠΊΠ°, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΠ°Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΊΡΠΈΠΏΡΠ° Π΄Π»Ρ Unix-ΡΠΈΡΡΠ΅ΠΌ,
Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΈΡ
ΡΠ°Π±ΠΎΡΡ Π² ΠΠ‘ Windows, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ
ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΏΡΠΎΡΡΠΎΠΉ
ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
ΠΡΠΈΠΌΠ΅Ρ #2 Π‘ΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (script.php)
#!/usr/bin/php
<?php
if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>
ΠΡΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ PHP-ΡΠΊΡΠΈΠΏΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅:
<?php echo $argv[0]; ?> <option>
<option> ΠΡΠ±ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ
Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ. ΠΠΏΡΠΈΠΈ --help, -help, -h,
ΠΈΠ»ΠΈ -? ΠΏΠΎΠΊΠ°ΠΆΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
<?php
} else {
echo $argv[1];
}
?>
Π ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π±Π°Π½Π³,
ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ PHP. Π Π°Π±ΠΎΡΠ° Π²Π΅Π΄ΡΡΡΡ Ρ CLI-Π²Π΅ΡΡΠΈΠ΅ΠΉ,
ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.
Π‘ΠΊΡΠΈΠΏΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° (Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ
ΠΈΠΌΠ΅Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ). ΠΡΠ»ΠΈ ΠΈΡ
Π½Π΅Ρ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ
Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π±ΡΠ» --help, -help,
-h ΠΈΠ»ΠΈ -?, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ
ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ $argv[0], ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
ΠΈΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π² Unix-ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ
Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
script.php echothis ΠΈΠ»ΠΈ
script.php -h. Π Windows-ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ
ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»:
ΠΡΠΈΠΌΠ΅Ρ #3 ΠΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° PHP-ΡΠΊΡΠΈΠΏΡΠ° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (script.bat)
@echo OFF
"C:\php\php.exe" script.php %*
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ
script.php, Π° ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ CLI
php.exe Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²
C:\php\php.exe, ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»
Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π³ΠΎ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
script.bat echothis ΠΈΠ»ΠΈ
script.bat -h.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ
Readline Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ
ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ PHP-ΡΠΊΡΠΈΠΏΡΠ°.
Π Windows Π·Π°ΠΏΡΡΠΊ PHP ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π±Π΅Π·
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ C:\php\php.exe ΠΈΠ»ΠΈ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .php.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΡΠ° ΡΠ΅ΠΌΠ° ΠΎΠΏΠΈΡΠ°Π½Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅
ΠΠ°ΠΏΡΡΠΊ PHP ΠΈΠ·
ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Microsoft Windows.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Π Windows ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ PHP ΠΏΠΎΠ΄ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ»ΡΠΆΠ±Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ,
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Β«ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΡΠ½ ΡΡΡΡΠ½ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎΒ».