php 执行外部程序函数详解

该文档 详细介绍了 php 程序中 执行外部命令或程序的函数,如php system() exec() shell_exec() passthru() popen()等, 有具体的图片演示,可以一目了然的区别他们的不同用途! 在PHP编程中,有时我们需要与操作系统进行交互,执行外部程序或命令来完成特定任务。PHP提供了几个函数来实现这一目标,这些函数包括`system()`, `exec()`, `shell_exec()`, `passthru()`以及`popen()`。下面是对这些函数的详细解释: 1. **system()** 函数: - `system($cmd)`允许你直接执行一个系统命令,命令的输出会直接打印到浏览器,除非被重定向。返回值是命令执行的最后一条输出行,这对于判断命令执行成功与否很有帮助。例如,你可以使用`system('ls')`来列出当前目录的内容。 2. **exec()** 函数: - `exec($cmd, $output)`执行命令并把输出保存到数组`$output`中。这个函数不会自动输出结果,而是将结果以行分隔的方式存入数组,你可以根据需要处理这些数据。如果你只想获取最后一条输出,可以设置第三个参数为true,如`exec($cmd, $output, $return_var)`,`$return_var`会包含命令的退出状态码。 3. **shell_exec()** 函数: - `shell_exec($cmd)`执行命令,并返回所有输出作为一个完整的字符串。这意味着所有标准输出和错误输出都会被合并。这个函数在安全模式下可能不可用,并且由于返回的是整个输出,所以它不适合处理大量输出。例如,`shell_exec('ls -l')`会返回整个`ls -l`命令的执行结果。 4. **passthru()** 函数: - `passthru($cmd)`类似于`system()`,但其输出是未经处理的,直接传递给浏览器,适合处理二进制数据。这个函数没有返回值,只负责将命令的输出原封不动地传递出来,因此不适合需要进一步处理结果的情况。 5. **popen()** 函数: - `popen($cmd, $mode)`打开一个与进程的管道连接,可以用于读取或写入。`$mode`可以是"r"(只读)或"w"(只写)。函数返回一个文件指针,可以与`fread()`, `fgets()`, `fwrite()`等函数配合使用。使用完后,记得使用`pclose()`关闭文件指针。`popen()`适用于需要持续与外部程序交互的情况。 在使用这些函数时,必须注意安全性问题,避免执行不受信任的用户输入,防止命令注入攻击。同时,由于这些函数涉及到系统调用,可能会消耗更多的系统资源,因此在性能敏感的应用中应谨慎使用。理解并正确运用这些函数,能极大地扩展PHP应用程序的功能,使它们能够处理更复杂的任务。





























- shuizhongmose2014-01-22是几个函数的使用方法。也不是特别详细,从百度搜就可以了。

- 粉丝: 138
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 大流量VPDN业务实现及网络优化方案探索.docx
- 附录B综合布线系统工程电气测试方法及测试内容.doc
- 电气工程其自动化考研总况.doc
- 计算机试卷及答案.doc
- 践行目标导向的项目管理治理.doc
- flare-硬件开发资源
- 计算机信息技术在能源管理中的应用.docx
- 项目管理理论在市政工程管理中的运用研究.docx
- 大数据时代下软件技术的发展和应用.docx
- 信息系统项目管理师第三版十大管理输入输出及管理工具技术.docx
- 机器学习(预测模型):Hacker News情感分析的数据集
- 数控加工工艺与编程项目六G符合循环教案.doc
- 大数据时代集团公司业财融合对财务共享的影响.docx
- 生活中的人工智能.docx
- 秒懂HTTPS技术接口.docx
- 明德小学教育信息化工作会议记录.doc


