我想在某些情況下顯示通知。我看到你可以用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