【发布时间】:2015-07-20 04:18:38
【问题描述】:
我是 PHP 新手,一直在研究计数器。命中计数器效果很好,但现在我想将数字转换为图像。
我已经创建了 12 个图像 0-9、一个分隔符和一个逗号图像。
我搜索了高低,以寻找将数字格式转换为图像所需的提示,但没有成功。到目前为止,我所发现的只是如何仅使用文件 PHP/MySQL 制作基本的命中计数器,以及如何使用 PHP/MySQL 显示加密图像。
所以问题是: 如何告诉给定的代码显示图像来代替每个数字?
当前 PHP 结果示例:命中:2,435
我希望我的 PHP 获取点击总数(示例),然后将 2,435 替换为以下代码:
<img src="img/2.png"><img src="img/comma.png"><img src="img/4.png"><img src="img/3.png"><img src="img/5.png">
注意:我在这里展示的代码中使用了很多注释。这样,任何新的编码人员都可以更轻松地理解正在显示的脚本。我将在这篇文章的底部添加我的最终/完成的代码,以便在我找到解决方案时每个人都可以看到最终产品。
此代码完全是虚构的文本命中计数器
// Begin open SQL connection to database
$concount = mysqli_connect("site","username","password","database");
// End connection to database
// Begin update number of hits
mysqli_query($concount,"UPDATE counter SET hits = hits + 1");
// End update number of hits
// Begin get number of hits
$hits = ("SELECT SUM(hits) FROM counter");
// End get number of hits
// Begin show number of hits
$result = mysqli_query($concount,$hits);
while($row = mysqli_fetch_array($result)) {
echo "Hits: " . number_format((float)$row['0']) . " ";
}
// End show number of hits
// Begin close SQL connection
mysqli_close($con);
// End close SQL connection
编辑:下面是我的代码的最终结果。 请注意,此脚本中的数组在图像数组的开头和结尾放置了一个 '。 (见下例)
Array ( [0] => ' [1] => 2 [2] => 4 [3] => 3 [4] => 5 [5] => ' )
因此,除非我想在命中计数器的以太端出现损坏的图像,否则我必须使用它们。我将我已经计划在两端使用的透明图像重命名为'.png(参见以下示例)
<img src="img/'.png"><img src="img/2.png"><img src="img/4.png"><img src="img/3.png"><img src="img/5.png"><img src="img/'.png">
最终代码 此代码完全是虚构的图像命中计数器
// Begin open SQL connection to database
$concount = mysqli_connect("site","username","password","database");
// End connection to database
// Begin update number of hits
mysqli_query($concount,"UPDATE counter SET hits = hits + 1");
// End update number of hits
// Begin get number of hits
$hits = ("SELECT SUM(hits) FROM counter");
// End get number of hits
// Begin assign $hits an id
$result = mysqli_query($concount,$hits);
while($row = mysqli_fetch_array($result)) {
$totalhits=("'" . $row[0] . "'");
}
// End assign $hits an id
// Begin get id for number of hits, split the string into array, and assign id to numbers
$arr = str_split($totalhits);
$numbers = $arr;
foreach ($numbers as $value) {
// End get id for number of hits, split the string into array, and assign id to numbers
// Begin show number of hits as images
echo "<img src=\"img/".$value.".png\">";
}
// End show number of hits as images
// Begin close SQL connection
mysqli_close($con);
// End close SQL connection
最后说明: 我还没有尝试在更大的数字上添加逗号或删除数组上的撇号。如果我这样做了,我会回来编辑。
【问题讨论】:
-
通常使用图像作为数字是不明智的。您应该在 html 中使用带有酷炫 CSS 的数字。
-
@jQuery.PHP.Magento.com 我同意将图像用于数字或任何文本等并不好,但 CSS 更好。因为我不知道如何在某些智能手机上安装字体,或者因为某些人可能会阻止此类下载,所以我选择使用图像。一切都设置为特定大小,以防止失真等。
-
总之你不能在你的整个网站中使用自定义字体吗?酷!
-
OP,想看看答案吗?
-
@jQuery.PHP.Magento.com 我是 PHP 新手。我仍在努力获得结果。我还没有答案。
标签: php mysql image hitcounter