首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP系统通知发送

PHP系统通知发送
EN

Stack Overflow用户
提问于 2013-04-21 23:22:00
回答 3查看 1.7K关注 0票数 1

我正在尝试在某些情况下显示通知。我看到你可以用system()函数来做这件事。除非我不能让它工作;)。

代码语言:javascript
复制
error_reporting(E_ALL);
system("notify-send 'Text here?'");
system('notify-send "Text here?"');

有人能告诉我我哪里做错了吗?或者是我的设置错了?我想用notify-send和PHP在Ubuntu上创建通知

问候

EN

回答 3

Stack Overflow用户

发布于 2013-04-23 01:26:19

好的,尽管这已经解决了,但我想在这里添加一些注释/信息,

据我所知,问题应该是运行PHP的用户不是运行桌面会话的用户(gnome/kde/etc),因此PHP可执行文件没有在该屏幕上显示通知的权限。

对我来说,我通过让PHP可执行文件在拥有会话的同一个用户下运行来解决这个问题(例如,如果我的用户名是abc,我已经设置PHP在同一个abc用户下运行,并且我还必须使用export DISPLAY=:0导出显示。

所以我的整个exec/system调用是这样的

代码语言:javascript
复制
exec("export DISPLAY=:0; notify-send 'title' '$message' ")
票数 2
EN

Stack Overflow用户

发布于 2013-11-23 15:58:34

我将导出显示方法转换为/usr/bin脚本。我通过远程ssh在系统中对它进行了测试,并在bash脚本/crons中成功地使用了它。http://pastebin.com/h11p2HtN我很好奇的是如何在登录屏幕上显示桌面通知。如果能显示一些关于init脚本的信息,那就太好了。

票数 0
EN

Stack Overflow用户

发布于 2014-03-31 22:42:36

我试着用php来解决这个问题,但我在这里看到的每个解决方案都很糟糕,要么以用户身份运行apache,要么导出显示,等等。

我用node.js写了这个小脚本,它的优点是由桌面用户运行,不需要导出额外的环境变量:

安装框架(应该很容易下载,配置,制作,运行此应用程序的目录,例如mkdir ~/message

  • Install express-

  • :cd ~/ node.js;npm install express

  • Create

  • script

  • Run it ..."node ./script-name.js"

现在您可以触发类似于localhost:5555/?message=Hello+World的请求

在我浪费了几个小时尝试用apache、php、cgi或其他任何工具来获得它之后,这对我来说很有效。

脚本:

代码语言:javascript
复制
var express = require('express');
var app = express();
var sys = require('sys');
var exec = require('child_process').exec;
var child;

app.get('*', function (req, res) {
  res.contentType('text/html');
  res.send(200, '');
  child = exec("/usr/bin/notify-send 'Message' '" + req.query.message + "'", function (error, stdout, stderr) {});
});

app.listen(5555);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16132745

复制
相关文章

相似问题

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