我试图在php脚本和c程序之间传递参数。我的php脚本如下所示
<?php
$ip = $_GET["q"];
$array = str_getcsv($ip);
foreach($array as $line){
exec("./a.exe", $line, $output);
echo $output;
}
?>
然后我想我的c程序返回给我一个字符串(但我真的不知道怎么做),你能帮忙吗?
但是要回答你的问题(得到一个由可执行文件输出的字符串),这真的很简单:
int main (int argc, char **argv)
{
printf("This is a line\n");
puts("Another line");
stc::cout << "Last bit";
return 0;
}
上面的代码在编译时可以通过exec
执行。函数的签名可以在文档中找到:
string exec ( string $command [, array &$output [, int &$return_var ]] )
告诉您它返回一个字符串(是命令输出的最后一行),为第二个参数指定一个数组(表示每行输出),并为第三个参数指定退出代码,因此:
$last = exec('./a.exe', $full, $status);
if ($status != 0) {
echo 'Something didn\'t go quite right';
} else {
echo 'Last line of output was: ', $last, PHP_EOL,
'The full output looked like this: ', PHP_EOL,
implode(PHP_EOL, $full);
}
为了实现与正在运行的程序的实际交互,您必须放弃exec
、shell_exec
、Passtransu
和任何这些函数。他们只是不能胜任这项工作。你可能真正想要的是类似于proc_open
函数的东西。这样,您可以访问程序使用的stderr
、stdin
和stdout
流,并写入stdin
,有效地与进程交互。
根据文档中给出的第一个示例,这值得一试:
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "/tmp/error-output.txt", "a")
);
$process = proc_open('./a.exe', $descriptorspec, $pipes);
if (!is_resource($process))
exit(1);//error
foreach ($array as $line) {
fwrite($pipes[0], $line."\n");//added the EOL, just in case
fflush($pipes[0]);//flush
usleep(100);//wait for a bit
//unsure about this bit, though, perhaps fread is a better choice
$output = stream_get_contents($pipes[1]);//get output
fflush($pipes[0]);//reminds me a bit of fflush(stdin) though. So I'd probably leave this out
}
array_map('fclose', $pipes);//close streams
proc_close($process);
看看这是否适用于您,查看文档,并找到一些proc_open
示例。不久前,我写了一个PHP脚本,它自动重复一个命令,直到有东西被写入stderr流。我已经把代码放在github上了,所以可能值得一看,我还链接到了这个相关问题的源代码
问题内容: 我在应用程序中有4个这样的字符串,我想传递给我的js文件 而我的javascript代码是 我只能得到$ a4字符串,而我不能得到其他字符串 我如何在php中传递这4个字符串并在javascript中设置这4个变量 谢谢; 问题答案: 将它们编码为JSON。 在PHP方面: 在JavaScript方面: 如果你想,,,并且是数字,而不是包含数字的字符串数组,只是JSON在发送之前解码在
问题内容: 我有一个字符串数组一样,我想这个数组发送到 ç 使用 JNI 。我找不到任何明确的解决方案。我试图将此字符串视为成功,但没有成功。 有没有办法做到这一点? 问题答案: 您可以编写一个简单的函数,该函数接受一个对象,将每个对象强制转换为jstring,然后对其进行调用。 像这样:
问题内容: 我有一个PHP脚本,可以从数据库中检索名称(字符串)。我想使用$ .ajax()将此数组传递给Javascript。我不明白如何在PHP中对数组进行编码,然后在Javascript中对其进行解码。有人可以为此提供示例代码吗?非常感谢 !! 问题答案: HTML档案:
问题内容: 背景: 我创建了一个非常简单的前端,用户可以在其中输入字符串。输入并单击“检查”按钮后,我想将此字符串作为JSON传递给python字符串,它将在其中进行SQL查找。根据SQL外观,python脚本应传递一个布尔值,该值应更改?到✔或✘。 题: 一旦按下“检查”按钮作为JSON到Python脚本,然后如何将字符串从Python传递到HTML,将?更改为✔或✘,如何传递字符串? 研究:
我是aws lambda和api网关的新手,我正在尝试向lambda函数传递一个json字符串。 但是,lambda不是用字符串调用的。 这是lambda。它获取一个对象作为输入,并返回类的字符串表示形式和对象的值。 api网关的映射模板是 api网关测试中的日志显示: 我希望json字符串被传递给lambda(作为字符串对象),但是TestMapping lambda返回的不是这个 如您所见,L
问题内容: 我正在查询页面上,用户在其中选择一个代表不同类型的值,每个值由一个ID标识。问题是使用WHERE IN方法从数据库中选择这些ID。 这是我的SQL语句 它将适用于一个单一值,例如。46,但如果值放在方括号中则不是,例如。(46)或(‘46’),即IN的方式。 我使用的是Visual Studio,它会自动生成访问表适配器以获取值的方法,所以我认为我必须通过SQL来做到这一点。 我正在传