这是我的Javascript:
var url = "load.php?x="+x;
xmlhttp.open("GET", url, true);
其中x是定义的变量。
这是我的PHP:
$var = $_GET['x'];
echo shell_exec('./test2/test2 $var');
其中test2是包含可执行文件的文件夹,$ var是参数。这在我的第二个陈述是
时有效echo shell_exec('./test2/test2 param');
这会显示在我的错误日志中:
terminate called after throwing an instance of 'terminate called after throwing an instance of 'std::logic_errorstd::logic_error'
what(): what(): basic_string::_S_construct NULL not validbasic_string::_S_construct NULL not valid
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
我做错了什么?
谢谢!
答案 0 :(得分:1)
我认为您的问题是因为您尝试在使用单引号定义的字符串中插入变量。请改用双引号。来自manual:
的相关引用注意:与双引号和heredoc语法不同,特殊字符的变量和转义序列在单引号字符串中不会扩展。
echo shell_exec("./test2/test2 $var");