通过传递字符串参数,使用shell_exec()执行对象文件 我执行的是对象文件 b>代码>,通过这样的方式从PHP页面执行C++程序实现: <?php //sent has value "http://www.paulgraham.com/herd.html" $url=$_POST['sent']; $text = file_get_contents($url); $temp=escapeshellarg(strip_tags($text)); //$temp = "one one two"; $output=shell_exec("/home/technoworld/Videos/LinSocket/Extra/Modular2/b " . $temp); echo $output; ?>
那么,为什么从php文件传递它时会给出错误的结果呢 当我在通过传递字符串参数,使用shell_exec()执行对象文件 我执行的是对象文件 b>代码>,通过这样的方式从PHP页面执行C++程序实现: <?php //sent has value "http://www.paulgraham.com/herd.html" $url=$_POST['sent']; $text = file_get_contents($url); $temp=escapeshellarg(strip_tags($text)); //$temp = "one one two"; $output=shell_exec("/home/technoworld/Videos/LinSocket/Extra/Modular2/b " . $temp); echo $output; ?>,php,shell-exec,Php,Shell Exec,那么,为什么从php文件传递它时会给出错误的结果呢 当我在$temp中将网页内容作为参数传递时,这是通过$text=file\u get\u contents($url)实现的$temp=escapeshellarg(带标签($text))然后它在浏览器上什么也不显示 有人能确定这里的问题是什么吗?尝试对参数stringPrint命令中的空格进行编码。您将看到它与您正在比较的不一样。@EliasVanOotegemescapeshellarg的文档说它在整个字符串周围加了引号。@Dheed:您能
$temp
中将网页内容作为参数传递时,这是通过$text=file\u get\u contents($url)实现的$temp=escapeshellarg(带标签($text))代码>然后它在浏览器上什么也不显示
有人能确定这里的问题是什么吗?尝试对参数stringPrint命令中的空格进行编码。您将看到它与您正在比较的不一样。@EliasVanOotegemescapeshellarg
的文档说它在整个字符串周围加了引号。@Dheed:您能详细说明一下吗?/b
是否正在将它的一些输出打印到stderr
?我认为shell\u exec()
只捕获stdout
,这就是为什么您看不到字符串是:
。
technoworld@ubuntu:~/Videos/LinSocket/Extra/Modular2$ ./b "one one,wo"
Client :
string is :one one,wo
one one wo
@ar[0]=1;ar[1]=2@