php exec ve çalışmıyor shell_exec

3 Cevap php

I want to run an exe file on my server and return the output to the browser screen. The exe file takes a input file and then returns data on the screen.

Neden bu kod çalışmıyor?

$output = shell_exec('myprogram < INP.DAT');
echo "<pre>" . var_export($output, TRUE) ."</pre>\\n";

Bu tarayıcı ekranında "NULL" görüntüler. Ben de) (exec denedim. İşte "Array ()" döndürür.

3 Cevap

One of the comments shell_exec manuel sayfasında diyor ki:

Aşağıdaki tutarsızlık dikkat: shell_exec() ve komutun çıktısı boş ise tırnak işleci bir dize dönmeyecek - onlar yerine NULL dönersiniz.

Bu '' karşılığında sıkı karşılaştırmalar yapacak false.


Bu olabilir disabled if PHP is in safe mode.

shell_exec() (functional equivalent of backticks)
This function is disabled when PHP is running in safe mode.

exec()
You can only execute executables within the safe_mode_exec_dir. For practical reasons it's currently not allowed to have .. components in the path to the executable. escapeshellcmd() is executed on the argument of this function.

Sen phpinfo() fonksiyonu ile sunucunuzun PHP ayarlarını kontrol edebilirsiniz.

Bu çalışması gerekir:

$output = array();
exec('myprogram < INP.DAT', $output);
var_dump($output);

Bazen bu fonksiyonları php yapılmadan devre dışı bırakılır safemode, sen php.ini bunları sağlamak zorunda