从php调用swi-prolog

时间:2010-06-16 19:48:24

标签: php swi-prolog

我正试图在php脚本中调用swi-prolog,如:

exec("start plwin.exe -f C:\\path\\load.pl -g run_from_file.", $os1);
print_r($os1);

我可以看到prolog窗口被打开并符合文件,但是立即退出显示退出状态为1.我确信它没有执行我想要执行的谓词。

是否还有其他人使用适当的参数调用prolog并保持窗口open而不自动退出?

更新:我将系统env变量配置为安装prolog的路径。

2 个答案:

答案 0 :(得分:0)

这个链接似乎有一些有用的信息,可以用不同的方式来完成。

http://www.j-paine.org/dobbs/prolog_from_php.html

答案 1 :(得分:0)

我还使用了http://www.j-paine.org/dobbs/prolog_from_php.html中的教程,它给了我一个空白的屏幕。 要在使用swipl的服务器上运行prolog文件,我更改为:

while($row = mysqli_fetch_array($result)){
    if( ! isset($response[$row[1]])) 
        $response[$row[1]] = array('post_id'=>$row[1]);
    $response[$row[1]][$row[2]] = $row[3];
}
// to make index numeric
$response = array_value($response);

我在这里找到了所有需要的信息:http://www.swi-prolog.org/pldoc/man?section=cmdline,见2.4.4节

php文件的其余部分与示例中的相同,现在它确实从myfile.pl执行测试。

也许他可以帮助别人。