西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開發(fā)php教程 → PHP的Popen函數(shù)實(shí)現(xiàn)RRDTOOL作圖的動(dòng)態(tài)輸出

PHP的Popen函數(shù)實(shí)現(xiàn)RRDTOOL作圖的動(dòng)態(tài)輸出

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2011/1/14 11:45:58字體大。A-A+

作者:佚名點(diǎn)擊:71次評(píng)論:0次標(biāo)簽: PHP Popen函數(shù)

  • 類型:音頻處理大小:1M語(yǔ)言:中文 評(píng)分:5.1
  • 標(biāo)簽:
立即下載
 最近看了一下RRDTOOL如何作圖,語(yǔ)法確實(shí)比較繁瑣,但不是太難。命令行下執(zhí)行的時(shí)候,每次都需要輸出成為一個(gè)文件。我們希望做一個(gè)應(yīng)用,能夠動(dòng)態(tài)生成圖表,看了看Cacti的實(shí)現(xiàn)方法,核心的部分就是使用了popen這個(gè)函數(shù),將命令的輸出放到了管道中,然后循環(huán)讀取所有的數(shù)據(jù),完成后,再以圖片的形式輸出到客戶端。這樣用戶就能夠看到動(dòng)態(tài)的圖片而不需要進(jìn)行物理的存儲(chǔ)了,下面是我截取的代碼段,供大家參考。

error_reporting(E_ALL);

//作圖命令,注意看 graph 后面加了一個(gè)連接符
$command = '/opt/rrdtool/bin/rrdtool graph - --start=-86400 --end=-300 --title=Test --height=400 --width=800 DEF:value1="/home/echo/workspace/misc/tianjin_dpool_web_21_traffic_in_22.rrd":traffic_in:AVERAGE AREA:value1#ff0000 2>&1';

//測(cè)試管道符
session_write_close();

//用管道的方式執(zhí)行命令,并且接收錯(cuò)誤輸出
$handle = popen("$command 2>&1", 'r');
$read = '';
while (!feof($handle)) {
$read .= fgets($handle, 4096);
}
pclose($handle);
echo $read;

// Set the proper headers to allow caching
$this->request->headers['Content-Type'] = File::mime_by_ext('png');
$this->request->headers['Content-Length'] = strlen($read);
$this->request->headers['Last-Modified'] = date('r', time());

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)