首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP执行linux命令

使用PHP执行linux命令
EN

Stack Overflow用户
提问于 2009-02-02 15:38:47
回答 6查看 7.4K关注 0票数 4

我正在尝试通过PHP命令行脚本执行linux命令,使用exec命令没有问题。

问题是,如果出现问题(例如用户名/密码不正确),我正在执行的命令(mysqldump)会输出一条错误消息。我似乎无法捕获此错误来记录它。它只是将这个错误打印到屏幕上。

如何不将此错误显示在屏幕上,而是将其放入一个变量中以便在脚本中使用?

谢谢!

EN

回答 6

Stack Overflow用户

发布于 2009-02-02 15:51:46

使用popen运行该流程。本页上的示例#2显示了您正在寻找的内容:

代码语言:javascript
复制
<?php
error_reporting(E_ALL);

/* Add redirection so we can get stderr. */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
票数 4
EN

Stack Overflow用户

发布于 2009-02-02 15:43:57

代码语言:javascript
复制
exec("mysqldump -u user -p passwod database >  outputfile.sql 2> error.log");
票数 2
EN

Stack Overflow用户

发布于 2009-02-02 15:46:34

你需要redirect stderr to stdout,这样你才能捕获它。这个示例将stdout路由到devnull (因此忽略它),并将stderr路由给您:

代码语言:javascript
复制
exec('ls * 2>&1 1>/dev/null');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/503633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档