【发布时间】:2013-09-01 07:17:19
【问题描述】:
我已经看到这个问题similar ques for SQL
我将网页内容作为参数传递给 c++ 程序。
我的代码在这里:
<?php
//sent has value "http://www.paulgraham.com/herd.html"
$url=$_POST['sent'];
$text = file_get_contents($url);
$temp=strip_tags($text);
$output=shell_exec("/home/technoworld/Videos/LinSocket/Modular/x '$temp'");
echo $output;
?>
它只为小内容提供输出。我得到的输出是
most : 1 in : 1 investors : 1 component : 1 2013The : 1 biggest : 1 August : 1 Dynamics : 1 Herd : 1 Investor : 1 Maximum Occurrences Investor Herd Dynamics August 2013The biggest component in most investors
虽然它实际上显示了每个单词的计数。
当我在命令行中手动执行程序时:
./x "string"
它可以为“http://www.paulgraham.com/herd.html”的第一段提供正确的结果 .但它不会在参数中传递第二个和下一个 para 内容。它只是写在命令行上。
如何在参数中传递这样的内容?对于小内容,它会提供正确的输出。
getconf ARG_MAX
我的系统允许的参数列表是:2097152
【问题讨论】:
-
作为将整个内容作为参数传递的替代方法,您可以将输出写入文件,然后将文件传递给程序(或者,将文件重定向为输入。例如,编写内容到“tmp.txt”并调用程序,如“./x
-
@Alex:谢谢,但是文件操作对我来说会变得非常昂贵。我必须同时处理大字符串和多个这样的请求!
-
第一段包含
',它将结束您的“x”程序的第一个参数。您可以将所有'替换为'"'"'。 -
@BryanOlivier:我在命令行中使用此字符串
The biggest component in most investors' opinion of you进行了测试。虽然它有',但它一直持续到句子的结尾! -
@Karimkhan 在这个测试中,你是否用
"包围了字符串?请注意,在您的 PHP 脚本中,您使用'包围字符串。
标签: c++ c command-line-arguments