注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发PHP → 文章内容

如何用PHP实现通过Web执行C/C++程序

作者:佚名 来源:不详 发布时间:2007-11-29 20:58:48

  如果用户输入任何非空的信息,程序将把text域的值,即变量$args传给C++程序。下面这段代码就是执行C++的程序的执行命令:

$command = "/htdocs/sampleapp "
. escapeshellcmd($args);

  函数eacapeshellcmd是用来当做安全检查工具,以过滤调一些如”,”,””和””等的特殊字符。这可以防止一些用户企图输入某些字符来调用系统内部命令。

  例如,如果你在Form表单的text域中输入”1 ?two /three”,那么变量$command的值就为:

/htdocs/sampleapp 1 ?two /three

  你能发现我们定义了程序sampleapp的全路径,在这个例子中,程序文件位于/htdocs目录下。你可以根据的自己程序所在的目录做相应的修改。

passthru($command);

  最后,我们使用PHP的函数passthru来执行变量$command所包含的命令并且将原始的执行结果输出到浏览器上。

  w在本文即将结束之前,几个可能碰到的问题我想说一下。首先,当你执行sampleapp.php教本程序的时候,如果你没有看到程序的任何输出信息,或许是开了安全模式。如果这样,系统将不会允许PHP脚本来执行系统内部程序。

  关于如何关闭安全模式,请访问网页http://www.php.net/manual/en/features.safe-mode.php,上面有详细的介绍。其次,在一些Unix系统上,PHP函数passthru不能将内部程序的输出传递给浏览页面,如果发生这种情况,可以用system函数来代替passthru函数。

  四,结论

  从本的例子可以看出,Unix操作系统非常强大,并且PHP允许开发者通过脚本以独立的线程来执行系统内部程序。本文的所给的例子非常的简单,但是只要再多花一点功夫,你可以写一个能更新Mysql数据库的c++程序,运行其他系统命令的程序或者是操作系统文件/目录结构的程序。但是,不管怎样,你都应该确保你的系统安全,绝对不能让任何其他的脚本程序随意访问系统内部程序。



上一页  [1] [2] [3] [4] 


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved