【发布时间】:2016-12-25 12:47:10
【问题描述】:
我正在尝试使用 PHP 和 prolog 制作数独游戏,想法是使用 prolog 程序解决数独然后通过 PHP 获得结果,我已经写下了这段代码,但我得到一个空输出
我什至尝试使用var_dump 进行测试,我得到string '' (length=0)
这是我的代码:
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Soduku</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="content">
<?php
$output=exec("\"c:/Program Files (x86)/swipl/bin/swipl-win.exe\" -g \"test,halt\" -t \"halt(1)\" test.pl ");
var_dump($output);
echo $output;
echo"<pre>";
print_r($output);
echo"</pre>";
?>
</div>
</body>
</html>
修改后的代码
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Soduku</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="content">
<?php
exec('"c:\\Program Files (x86)\\swipl\\bin\\swipl-win.exe" -g "st,halt" -t "halt(1)" -s test.pl',$output,$return_var);
var_dump($output);
echo $return_var;
?>
</div>
</body>
</html>
它显示这个结果
array (size=0)
empty
0
【问题讨论】:
-
如果我是你,首先,我会在 PHP 代码之外打开和关闭
<pre>标记。然后:真的,也使用exec()的最后一个参数,并检查它是0(成功)还是1。如果它真的是0,那么你应该弄清楚你是否以正确的方式打印。var_dump()肯定不会将数组的内容打印到行中......恐怕你真的需要自己做一些阅读。 -
当我在 cmd 中执行命令行
"c:\\Program Files (x86)\\swipl\\bin\\swipl-win.exe" -g "st,halt" -t "halt(1)" test.pl时,它运行良好,但是当我尝试在exec()中使用它时,它返回一个空输出,我不确定问题出在哪里,我尝试阅读该文档很多次,但我真的找不到我做错了什么,这就是我在这里寻求帮助的原因 -
也
$return_var返回 0 表示成功
标签: php prolog swi-prolog