shell_exec
(PHP 4, PHP 5, PHP 7, PHP 8)
shell_exec β ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Π ΠΠ‘ Windows Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ°Π½Π°Π» ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅,
ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ.
Π’ΠΎΠ³Π΄Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ popen().
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
command
-
ΠΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ (string), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ²ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, false, Π΅ΡΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°Π½Π°Π»
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΈΠ»ΠΈ null, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ null Π² Π΄Π²ΡΡ
ΡΠ»ΡΡΠ°ΡΡ
: Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ. ΠΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ,
ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ exec(), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΡΠΌΠ΅Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
ΠΡΠΈΠ±ΠΊΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΡΠΎΠ²Π½Ρ E_WARNING, Π΅ΡΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ shell_exec()
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
- exec() - ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- escapeshellcmd() - ΠΠΊΡΠ°Π½ΠΈΡΡΠ΅Ρ ΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ