Как запустить callgog cli с помощью php-скриптов?
Я могу вручную запустить телефонную таблицу с окнами cmd, и все отлично работает, но когда я вызываю ex: 'phonegap build android' в php exec, ничего не происходит. Нет ошибки, нет блока catch, ничего.
Вот мой код:
test.php
<?php $out = array(); try { $create_command = 'phonegap create test'; $build_command = 'phonegap build android'; exec($build_command,$out); foreach($out as $line) echo $line.'<br>'; } catch(Exception $ex) { echo $ex->getMessage(); } ?>
Кстати, я зарегистрировал php в средах, а затем выполнил 'php% path_to_file% / test.php' в cmd, и он сработал.
Спасибо за ваши ответы. Но в моих кодах не было ничего плохого. Проблема была fast-cgi, которая по умолчанию не установлена на xampp. Я изменил свой веб-сервер на nginx с помощью этого веб-сервера WT-NMP .
Попробуйте ниже:
<?php function sys_cmd($cmd) { $hd = popen($cmd,"r") or die('function disabled'); while (!feof($hd)) { $rs .= fread($hd,1024); } pclose($hd); return $rs; } out = array(); try { $create_command = 'phonegap create test'; $build_command = 'phonegap build android'; sys_cmd ($build_command, $out); foreach($out as $line){ echo $line.'<br>'; } } catch(Exception $ex) { echo $ex->getMessage(); } ?>
Измените это:
exec($build_command,$out);<br> foreach($out as $line) echo $line.'<br>';
этим:
passthru( $build_command );
Команда passthru выполняет то же самое, что и exec, и записывает полученный код непосредственно в браузер.