我想在某些情况下显示通知。我看到你可以用system()函数做到这一点。除了我不能让它工作;)。PHP系统通知发送
error_reporting(E_ALL);
system("notify-send 'Text here?'");
system('notify-send "Text here?"');
能有一个人告诉我什么,我做错了什么?或者我的设置错了?我想创建一个通知,发送和PHP
问候
我想在某些情况下显示通知。我看到你可以用system()函数做到这一点。除了我不能让它工作;)。PHP系统通知发送
error_reporting(E_ALL);
system("notify-send 'Text here?'");
system('notify-send "Text here?"');
能有一个人告诉我什么,我做错了什么?或者我的设置错了?我想创建一个通知,发送和PHP
问候
好吧,即使这是有点儿解决,但我想在这里补充一些笔记/信息,
据我知道在Ubuntu的通知问题应该是运行PHP的用户与运行桌面会话的用户不同(gnome/kde/etc),因此PHP可执行文件没有权限在该屏幕上显示通知。
对我来说,我通过让PHP可执行文件在拥有会话的同一用户下运行来解决它(例如,如果我的用户名被称为abc
,我已经设置PHP在同一个abc
用户下运行,并且我还必须导出通过使用export DISPLAY=:0
显示,
所以我整个的exec /系统调用是这样
exec("export DISPLAY=:0; notify-send 'title' '$message' ")
只需添加显示部分为我工作,好东西! :) – technicalbloke 2013-04-25 03:25:21
我应该尝试一下,可能是唯一需要的 – 2013-05-13 20:57:11
我把出口的展示方式为在/ usr/bin中的脚本。我通过SSH远程测试它进入系统,并已使用它成功地在bash脚本/ crons中http://pastebin.com/h11p2HtN 我很好奇的是如何在登录屏幕上显示桌面通知,这将是很好的显示a关于init脚本的一些信息。
我试图得到这与PHP的工作,但我看到的每一个解决方案都是蹩脚的,无论是作为您的用户运行Apache或导出显示等。
我在node.js中写了这个小脚本,其正在由桌面用户运行的优势,不需要额外的环境变量需要导出:
现在你可以火象本地主机请求:5555 /消息= +你好世界
为了我,在浪费了几个小时后,试图用apache,php,cgi或其他方法来实现这个功能。
脚本:
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);
尝试命令:的“where is通知,发送”发现“通知 - 发送”的完整路径,然后在你的代码中使用它,然后再试一次。 – Alix 2013-04-21 15:28:43
更改为系统('/ usr/bin/notify-send“sdfsd”'); 仍然没有运气 – Haagenti 2013-04-21 15:33:35
尝试以root身份从控制台运行您的PHP代码,例如“sudo php /path/to/your/script.php”。如果有效,问题应该是特权。 – Alix 2013-04-21 15:36:51