图像像基于表值的进度条?

时间:2014-10-16 16:52:07

标签: php

我想创建一个包含少量图像的进度条。让我解释。目前,它在网站上显示如下:Online users: 50(示例) 但是,我想用类似的进度条替换文本,例如总共5个图像。让我解释。第一张图片是进度条,有一行(25位在线用户),如果它超过25,显示第二张图像有两行等等。我希望你理解我,非常感谢帮助我。我会自己制作图像,但是我不知道进度条应该如何。它不需要是AJAX,Javascript或类似的东西。只需简单的进度条就有4-5个图像,它们应该在获得getloggedincount值时发生变化...

以下是功能:(它从文本文件中写入/读取值,因此我可以将结果缓存5分钟。)

    function GetLoggedInCount()
    {
        $cachefile = './cachefiles/count.txt';
        $db = $this->database[ADB];         
        if (!file_exists($cachefile) || (time() - 300) >= filemtime($cachefile))
        {
            $count = 0;
            $num_rows = $db->doQuery('SELECT COUNT(AccountID) as pCount FROM ONLINEUSERS');
            if ($num_rows == 1)
            {
                $row = $db->doRead();
                $count = $row['pCount'];
                $fp = fopen($cachefile, 'w');
                fwrite($fp, $count);
                fclose($fp);
            }
            return $count;
        }
        else if ((time() - 300) < filemtime($cachefile))
        {
            $fp = fopen($cachefile, 'r');
            $content = fread($fp, filesize($cachefile));
            fclose($fp);
            return intval($content);
        }
    }

        Template::SetVar('pcount', $this->GetLoggedInCount());

........

1 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西。

/**
 * Returns overall count of users in your system
 * 
 * @todo You need to write this function!
 * @return int 
 */
function GetOverallUsers(){} 

/**
 * Returns amount of logged in users
 * @return int
 */
function GetLoggedInCount(){}

//How many images do you have?
$numberOfDifferentPictures = 5;

$pictureNumber = ceil(GetLoggedInCount() / GetOverallUsers() * $numberOfDifferentPictures);

Template::SetVar('imageNumber', $pictureNumber);

模板中的某个地方

<img src="image{{imageNumber}}.png"/>

我认为这对您有用,但如果您可以在模板中移动此评估并仅将已记录和整体用户的数量传递给模板引擎,那将会更好。


顺便说一句,我认为你应该看看一些CSS进度条。它们非常简单而且很花哨,你不需要弄乱图片。只需要很小的HTML + CSS代码段就可以了。