在我的数据库ı有数字1
, 2
, 2.5
, 3
, 3.5
, 4
, 4.5
和5
我想这些数字转化为恒星。
我有充分的星半星。
我该怎么做,从数据库中获取信息后?
我对数据库的等级标签。
在我的数据库ı有数字1
, 2
, 2.5
, 3
, 3.5
, 4
, 4.5
和5
我想这些数字转化为恒星。
我有充分的星半星。
我该怎么做,从数据库中获取信息后?
我对数据库的等级标签。
<?php
for($x=1;$x<=$starNumber;$x++) {
echo '<img src="path/to/star.png" />';
}
if (strpos($starNumber,'.')) {
echo '<img src="path/to/half/star.png" />';
$x++;
}
while ($x<=5) {
echo '<img src="path/to/blank/star.png" />';
$x++;
}
?>
*假设你正在使用PHP
当我在过去已经这样做了,我用了5空星一个图像的5星填充一个图像的下方。 然后我不喜欢的东西
filled-stars.width = (empty-stars.width * (rating / 5)
这样,您就可以显示像3.2978等评级
你可以做到这一点,使用PHP,HTML和CSS:
<div class="star-<?=$number?>">
<b></b><b></b><b></b><b></b><b></b>
</div>
然后,您可以风格与CSS,所以要根据星显示背景图片。 如果转换<b>
标签来<a>
的标签,它可能更多的语义。
考虑使用精灵 。 开始与包含的恒星对每个可能的等级行中的图形,然后计算后台的每个半星半星的评级图形次数的高度乘以偏移。
例如:
<?php
$offset =
($rating / .5) // number of half-stars in $rating
* 15; // height of each sprite in stars.png
?>
<div style="background-image:url("stars.png");background-position:0 <?php echo $offset; ?>px;"></div>
与JavaScript的一个有点相结合,可以实现一个全功能的收视率小部件 。
在这里,这增加了明星echo '*';
并且如果需要半区echo '+';
变化'*'
和'+'
以例如<img src="star.gif" />
和<img src="halfstar.gif" />
// This number of stars:
$number = 2.7;
// Make it integer:
$stars = round( $number * 2, 0, PHP_ROUND_HALF_UP);
// Add full stars:
$i = 1;
while ($i <= $stars - 1) {
echo '*';
$i += 2;
}
// Add half star if needed:
if ( $stars & 1 ) echo '+';