我在php中使用网站计数器,我只需要从0000000值显示计数器开始。
以下是我的代码:
<?php
//opens countlog.txt to read the number of hits
$datei = fopen("countlog.txt","r");
$count = fgets($datei,1000);
fclose($datei);
$count=$count + 1 ;
// get the total number of digits in the counter
$number_length = strlen($count);
$main_image = "";
for($i=0;$i<$number_length;$i++){
$digit = substr($count, $i, 1);
if($digit == 1){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/1.png'>";
}
if($digit == 2){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/2.png'>";
}
if($digit == 3){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/3.png'>";
}
if($digit == 4){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/4.png'>";
}
if($digit == 5){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/5.png'>";
}
if($digit == 6){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/6.png'>";
}
if($digit == 7){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/7.png'>";
}
if($digit == 8){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/8.png'>";
}
if($digit == 9){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/9.png'>";
}`enter code here`
if($digit == 0){
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/0.png'>";
}
}
echo $main_image;
// opens countlog.txt to change new hit number
$datei = fopen("countlog.txt","w");
fwrite($datei, $count);
fclose($datei);
?>
答案 0 :(得分:3)
尝试str_pad
功能:
$count=$count + 1 ;
$count = str_pad($count, 7, '0', STR_PAD_LEFT);
此外,您可以用一行替换您的大if
块:
$main_image .= "<img height='32' width='19' src='".SITE_URL."images/digit/".$digit.".png'>";
答案 1 :(得分:0)
您还可以创建图像生成器并在其中包含指向您的html的链接。
是强>
<img src="//yourdomain.com/urltoscript.php" alt="Counter">
图片生成器
<?php
/**
* Get next incremented counter
* @return int
*/
function get_next_counter()
{
$counter_file = 'counter.txt';
$count = 0;
if(file_exists($counter_file)) {
$count = file_get_contents($counter_file);
}
$count++;
file_put_contents($counter_file, $count);
return $count;
}
/**
* Send to browser image with counter. Length 6 digits
*/
function display_image_counter($counter)
{
$im = imagecreate(100, 30);
// White background
$bg = imagecolorallocate($im, 255, 255, 255);
// dark text
$textcolor = imagecolorallocate($im, 0, 0, 0);
// Text in left top corner
imagestring($im, 5, 0, 0, sprintf("%'.06d", $counter), $textcolor);
// Display image to browser
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
}
$counter = get_next_counter();
display_image_counter($counter);
?>