我正在尝试使用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
答案 0 :(得分:1)
我有finnaly找到了如何做到它太简单了,我只需要执行swipl.exe而不是swipl-win.exe,正确的语法是
$cmd='"c:/Program Files (x86)/swipl/bin/swipl.exe" -g solve_problems,halt -t halt(1) sud.pl' ;
答案 1 :(得分:0)
doc表示exec
返回最后一行,您可能有一个空行作为最后一行。要获得完整输出,请使用第二个参数:
exec("\"c:/Program Files (x86)/swipl/bin/swipl-win.exe\" -g \"test,halt\" -t \"halt(1)\" test.pl ", $output);
var_dump($output);