2008-04-16
php执行外部程序函数解析
关键字: php, external program, 重定向
php中可以用来执行外部命令的函数或运算符有:
其中:
对于任何函数的ret_val(int 类型),如果正常执行,那么返回0,否则返回非零。
问:对于返回的非零值,是不是根据错误信息的不同而有所不同?有的资料说一般错误会返回13,而我的大多数程序遇到错误返回1.
问:如果程序执行错误,php应该如何捕获错误语句?
问:php调用标注程序和调用shell脚本有什么区别吗?
更复杂的proc_open 函数和重定向问题,下次再写
``//backtick operator string shall_exec(string cmd); string exec(string cmd, array &output, int &ret_val); string system(string cmd, int &ret_val); void passthru(string cmd, int &ret_val);
其中:
- backtick操作符和shall_exec函数完全相同,都是执行后,返回输出结果(注意没有返回程序的返回值)。
- system和passthru都会自动打印输出,但是passthru更适合返回大量数据,因为它不需要返回任何信息,所以能直接将数据发送到客户端,用php手册中的原话是:引用If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.这就是system和passthru仅有的不同点。
- exec函数不会打印输出,但是它能将输出按照行放到一个数组里面,而返回值是这个数组的最后一个元素(也就是输出的最后一行)。
对于任何函数的ret_val(int 类型),如果正常执行,那么返回0,否则返回非零。
问:对于返回的非零值,是不是根据错误信息的不同而有所不同?有的资料说一般错误会返回13,而我的大多数程序遇到错误返回1.
问:如果程序执行错误,php应该如何捕获错误语句?
问:php调用标注程序和调用shell脚本有什么区别吗?
更复杂的proc_open 函数和重定向问题,下次再写
- 00:52
- 浏览 (260)
- 评论 (3)
- 分类: Web Development
- 进入论坛
- 发布在 phper 圈子
- 相关推荐
评论
xombat
2008-04-18
catoc 写道
xombat 写道
问:php调用标注程序和调用shell脚本有什么区别吗?
啥叫标注程序?
抱歉,写错了,应该是“标准程序”,也就是非脚本的程序
catoc
2008-04-16
xombat 写道
问:对于返回的非零值,是不是根据错误信息的不同而有所不同?有的资料说一般错误会返回13,而我的大多数程序遇到错误返回1.
这个是由执行的外部程序决定,外部程序返回什么值就是什么值,按照约定,成功执行是exit(0) 。
xombat 写道
问:如果程序执行错误,php应该如何捕获错误语句?
这个不好说,通常是返回的值不为0,即有错误,但是有的外部程序返回的值不对。另外,接受到的 output 实际上是 外部程序的stdout ,stderr 是没有的。可以用重定向解决 2>&1
xombat 写道
问:php调用标注程序和调用shell脚本有什么区别吗?
啥叫标注程序?
xombat
2008-04-16
问:对于返回的非零值,是不是根据错误信息的不同而有所不同?有的资料说一般错误会返回13,而我的大多数程序遇到错误返回1.
问:如果程序执行错误,php应该如何捕获错误语句?
问:php调用标注程序和调用shell脚本有什么区别吗?
问:如果程序执行错误,php应该如何捕获错误语句?
问:php调用标注程序和调用shell脚本有什么区别吗?
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 55829 次
- 性别:

- 来自: 乌托邦

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
【团队管理】大家Have A ...
sg552 写道 今天白天要出去,晚上回来,或者明天的时候,好好帮你分析一下。 ...
-- by rj045wq -
【团队管理】大家Have A ...
那就试试每天早上花个20分钟开个早茶会,让每人介绍下自己在干的活,以及需要什么帮 ...
-- by xiaolin0105 -
【团队管理】大家Have A ...
早上起来看到回帖,呵呵,楼主别激动。我知道我的帖子写的非常概括。因为之前只是把自 ...
-- by sg552 -
【团队管理】大家Have A ...
sg552 写道不是我故意跟你作对。 我觉得你确实很需要提高。犯了很多大忌。 也 ...
-- by xombat -
【团队管理】大家Have A ...
抛出异常的爱 写道 你管的太多。 放下手中的事 让他们自己决定要干什么不要干什么 ...
-- by xombat






评论排行榜