欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【PHP中通过Web执行C/C++应用程序】,下面是详细的分享!
PHP中通过Web执行C/C++应用程序
一、简介
如果你对Unix/Linux有所了解的话,你应该知道他们大都自带了C和C++的编译器,分别是GCC和G++。Unix在程序安装及Make等许多地方使用到了这些编译器。利用一些控制台命令,C++和PHP,我将向你介绍怎样生成一个完整的C++程序例子,他可以在用PHP程序来执行,并能获得相应的输出结果。我将先生成C++程序代码,并编译它,谈后讨论我们将如果通过使用PHP的函数passthru来执行这个程序。从某种意义上来说,这边文章给我们提供一种通过Web页面来访问一般程序的方法。
为了能更好的理解这篇文章,你应该有一台运行着apache和最新版本php的unix/Linux服务器。同时也应该掌握C++,unix控制台命令,当然一些PHP的编程经验也是必需的。
二、编写一个C++程序
例如,我们可以写一个能够通过命令行还接收参数的C++简单程序,并命名为Sampleapp.然后我们能够按照下面的方式给他传递三个不同的参数:
Sampleapp?参数一?参数二?参数三
这个程序的功能是能输出传递给他的参数的个数和每个参数的值,然后我们可以用PHP脚本程序来执行编译好的C++程序。
利用你习惯的文本编辑器,新建一个名为Sampleapp.cpp的文件,再此文件中输入如下的代码:#include<iostream.h>
intmain(intargc,char*argv[])
{
cout<<endl<<"Youpassed"<<argc-1<<"arguement"
<<(argc-1==1?"":"s")<<"."<<endl;
cout<<(argc-1==1?"This":"These")
<<"arguement"<<(argc-1==1?"":"s")<<""
<<(argc-1==1?"is":"are")<<":"<<endl<<endl;
for(inti=1;i<argc;i++)
cout<<"["<<i<<"]"<<argv[i]<<endl;
return0;
}
这个C++程序包含的程序的入口点:main(),main()函数带了两个参数:argc(命令行传入参数的个数)和argv(一个包含了所传参数实际值的字符型指针数组)。这个两个参数能被C++编译器自动捕获。cout<<endl<<"Youpassed"<<argc-1<<"arguement"
<<(argc-1==1?"":"s")<<"."<<endl;;
这句话的意思是获得从执行命令行传入的参数的个数。Argv这个字符型指针数组是从0开始检索的,它至少包含一个实际的值(即本程序的路径和名称),这个值由C++编译器自动地附加上去。条件操作符”?”是用来判断命令行传入地参数是否多于一个。例如,如果命令行过传入两个参数,我们地程序将输出如下信息:
Youpassed2arguments.cout<<(argc-1==1?"This":"These")
<<"arguement"<<(argc-1==1?"":"s")<<""
<<(argc-1==1?"is":"are")<<":"<<endl<<endl;
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
