Я пытаюсь вызвать swi-пролог из скрипта php, например:
exec("start plwin.exe -f C:\\path\\load.pl -g run_from_file.", $os1); print_r($os1);
Я вижу, что окно пролога открывается и соответствует файлу, но сразу же выходит из состояния вывода как 1. Я уверен, что он не выполняет предикат, который я хочу выполнить.
Есть ли другие, чтобы вызвать пролог с соответствующими параметрами и оставить окно open
без автоматического выхода?
UPDATE: я настроил переменные env системы на путь, где установлен пролог.
Эта ссылка, похоже, содержит некоторую полезную информацию о различных способах, которыми это может быть сделано.
Я также использовал учебник из http://www.j-paine.org/dobbs/prolog_from_php.html , и это давало мне пустой экран. Для запуска прологового файла на сервере, где используется swipl, я изменил на:
$cmd = swipl -f /path/to/myfile.pl -g test,halt -t 'halt(1)';
Я нашел всю необходимую информацию здесь: http://www.swi-prolog.org/pldoc/man?section=cmdline , в разделе 2.4.4
Остальная часть файла php такая же, как в примере, и теперь он действительно выполняет тест из myfile.pl.
Может быть, он может помочь кому-то.