当前位置: 首页 > 图文教程 > 网络编程 > PHP > php 执行系统命令的方法

PHP
“懒人”的做法:用PHP简易实现中文分词
实例操作:PEAR的HTML_QuickForm7应用
PHP在电影图像中的妙用 合并汉英字幕
实例解说:用Perl来分析并生成中文Excel文件
实用举例:利用PHP代码实现网页自动判断转向
简单了解操控日期和时间的10个Perl CPAN模块
常用编程应用小技巧 PHP获得文件扩展名三法
windows环境下uploaded_file函数如何饶过缺陷
针对配置文件操作 PHP最常用的四个ini函数
用不同文件 构建可配置PHP应用程序的正确方式
精确到每一秒钟 如何实现在线人数的显示?
用PHP写mail函数 配置好后需要重启apache
简单示例:AJAX结合PHP代码实现登录
PHP中引用&的使用注意事项
关于AJAX的N篇贴子整理
社区新闻--PHP5内容管理系统
PHP 开发环境的选择、建立及使用(1)
PHP 开发环境的选择、建立及使用(2)
PHP 开发环境的选择、建立及使用(3)
PHP 开发环境的选择、建立及使用(4)

PHP 中的 php 执行系统命令的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 80 ::
收藏到网摘: n/a

在一个项目里用到这样的东西,用另外一个服务做了一些事情,生成的文件权限,通过php 无法读取,测试了很多种方式都没能实现,在网上找了下,可以用c写一个代理来实现,本人就实现了一下,果真可以。 代码如下:
复制代码 代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
int main(int argc,char * argv[])
{
uid_t uid,euid;
char cmd[1024]="chmod -R 777 ";
uid =getuid();
euid = geteuid();

//printf("param %s\n",strcat(cmd,argv[1]));
//exit(0);
//printf("uid:%un. eudi=%un\n",getuid(),geteuid());
if(setreuid(euid,uid))
perror("setreuid");
//printf("uid:%un. eudi=%un\n",getuid(),geteuid());
system(strcat(cmd,argv[1]));
return 0;
}

现在说下,在linux下面,gcc编译,以及复权的问题:
执行
gcc -Wall -o phpchmod phpchmod.c
执行
chmod u+s ./phpchmod
php代码的使用:
复制代码 代码如下:

$chmod_line = dirname(__FILE__)."/phpchmod ./dest_dir/";
system($chmod_line);