PHP中通过Web执行C/C++应用程序 
作者: claymore 发表于: 2008-11-15 12:30:50
一、简介
如果你对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>
int main(int argc, char* argv[])
{
cout << endl << "You passed " << 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(int i = 1; i < argc; i++)
cout << "[" << i << "] " << argv << endl;
return 0;
}
如果你对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>
int main(int argc, char* argv[])
{
cout << endl << "You passed " << 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(int i = 1; i < argc; i++)
cout << "[" << i << "] " << argv << endl;
return 0;
}
......
阅读全文……
13个不同类型网页菜单源代码和在线例子 
作者: claymore 发表于: 2008-11-13 09:49:51
16个漂亮的CSS模板 
作者: claymore 发表于: 2008-11-13 09:45:24
近50个最好的而且免费Ajax 例子 
作者: claymore 发表于: 2008-11-13 09:41:19
Web应用程序已经取得了跨越式的发展,我们要感谢下Ajax 技术。
以下是我们提供的最好的而且免费提供的脚本,这些例子中使用了jQuery, Mootools, Prototype 和script.aculo.us ,不妨尝试一下!
Ajax Forms
以下是我们提供的最好的而且免费提供的脚本,这些例子中使用了jQuery, Mootools, Prototype 和script.aculo.us ,不妨尝试一下!
Ajax Forms
ShoutBox
Validate a Username AJAX
......
阅读全文……
前端开发必备工具
作者: claymore 发表于: 2008-11-10 09:58:31
Javascrīpt开发工具大集合
作者: claymore 发表于: 2008-11-10 09:54:59
http://www.8esky.com/handbook/Javascrīpt/contents.htm Javascrīpt 参考
(1)调试javascrīpt的好方法:
修改IE的设置:
IE的“选项-高级”,有两个选项默认是钩选的:
Disable scrīpt Debugging(Internet Explorer)
Disable scrīpt Debugging(Other)
中文可能是“禁用脚本调试”,去掉这两项的钩选。
修改IE的设置:
IE的“选项-高级”,有两个选项默认是钩选的:
Disable scrīpt Debugging(Internet Explorer)
Disable scrīpt Debugging(Other)
中文可能是“禁用脚本调试”,去掉这两项的钩选。
在VS2005“工具-选项-调试-实时”,选中脚本调试。
在需要调试的地方加上debugger;例如:
<scrīpt language=javascrīpt>
..
debugger;
..
</scrīpt>
打开或刷新一下页面就进入断点了。
<scrīpt language=javascrīpt>
..
debugger;
..
</scrīpt>
打开或刷新一下页面就进入断点了。
......
阅读全文……
关于表单输入域长度的问题
作者: claymore 发表于: 2008-11-06 19:40:39
今天发现在LINUX使用FIREFOX浏览网站时,出现了表单的input和textarea比较长的情况,网页结构被整了乱七八糟的。
然而在WINDOWS下使用IE或者FIREFOX浏览却没有那种情况,而且好好的,挺喜欢的
。
。后来经过反复测试发现原来在LINUX下和WINDOWS下对网页的表单输入域的长度是不一致的(恩,应该是这样,我是这么对自己解释的).
比如说input的size="50",在WINDOWS下只占估计250像素的长度,然而在LINUX下几乎占了整个页面的长度
。
。这是一种比较夸张和超出逻辑的情况,我不知道这个差别是怎么出现的,总之我是找到了解决的办法,也就是在控制表单的输入域长度的时候尽量使用CSS,而不要使用SIZE属性,使用CSS使网页布局更加一致。
......阅读全文……
不要使用opendir,readdir,closedir
作者: claymore 发表于: 2008-11-06 19:26:39
上次写代码的时候发现了一个问题。
关于目录的访问我一般使用的结构是
程序代码$dir_res=opendir($dir);
while($file=readdir($dir_res))
{
...
}
closedir($dir_res);
while($file=readdir($dir_res))
{
...
}
closedir($dir_res);
但是当文件/目录名比较特殊时,比如说是0,这样$file的值为0,虽然它表示文件名,并不表示其他含义,但是程序可不认,它把它作为false离开了这次循环,所以当文件/目录名在boolean语法中表示false的意思时,这个访问结构是不成立的。(虽然我只对文件/目录名为0的情况进行了测试不成功,天知道还有什么其他的情况
)所以,应该使用scandir函数来访问目录,该结构可为:
程序代码$files=scandir($dir);
阅读全文……




点击下载此文件
由于做了静态化处理,搜索引擎以前搜到的动态页面网址已经不能确定目标,很抱歉。




