Я использую php 5.2.9 на рабочем сервере, и кажется, что функция exec() ведет себя "нестандартно".
Если я запустил exec("ls", $output, $return_var)
, то $output
будет содержать список файлов в текущей папке, как ожидалось, но $return_var
будет установлен на -1 вместо 0, как и ожидалось.
Я использую $return_var
, чтобы определить, где была успешно завершена команда, и на каждом тестируемом сервере это работает как ожидалось:)
Кто-нибудь когда-нибудь сталкивался с такой ситуацией?
изменить:
<?php
$command = "asd";
$t1 = time();
$output = Array();
$result = -5;
$r = exec($command, $output, $result);
$t2 = time();
echo "<pre>";
var_export(Array(
'command'=>$command,
'result'=>$result,
'output'=>implode("\n", $output),
'r'=>$r,
't2-t1'=>$t2-$t1,
));
echo "</pre>";
Какую бы команду я не ввел $command
, $result
всегда будет -1, даже для несуществующих команд... это очень странно