PHP MySQL счетчик посещений

Я новичок в PHP и работаю над счетчиком посещений. Счетчик посещений работает отлично, но теперь я хочу преобразовать числа в изображения.

Я создал 12 изображений 0-9, разделитель и изображение запятой.

Я искал высокий и низкий намек на то, что мне нужно сделать, чтобы преобразовать числовой формат в изображения, и не добился успеха. Пока что все, что я нашел, — это как сделать базовый счетчик посещений, используя только файлы, PHP / MySQL, и как отобразить зашифрованное изображение, используя PHP / MySQL.

Итак, вопрос:
Как мне указать данный код для отображения изображений вместо каждого номера?

Пример текущего результата PHP: Hit: 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:&nbsp;" . number_format((float)$row['0']) . "&nbsp;";
}
// 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

Заключительные замечания:
Я еще не пробовал добавлять запятую к большим числам или удалять апостроф в массиве. Если я это сделаю, я вернусь и отредактирую это.

3

Решение

Вам нужно разделить счетчик посещений на массив с каждым значением, содержащим одну цифру, а затем использовать цикл for для добавления изображений.

<?php
$array = str_split($your_hit_variable_from_mysql);
if(!empty($array)){
foreach($array as $single){
echo '<img src="'.$single.'.jpg"'>;
}
}else{
echo '<img src="0.jpg"'>;
}
?>

обеспечивать Вы храните число в целочисленном формате, а не строку, как 52 200 с запятой.

Для дополнительной проверки Вот.

РЕДАКТИРОВАТЬ: Добавлена ​​обработка исключений, когда есть счетчик 0 для изображения.

2

Другие решения

Ты можешь использовать str_split($str) преобразовать строку в массив символов.
Далее вы можете повторить их с помощью простого for или же foreach петля.

РЕДАКТИРОВАТЬ:

Есть несколько вариантов как визуализировать изображения.
Вы можете просто взять HTML <img src=''> теги или CSS.

Если вы используете CSS, затем вы можете создать 1 изображение, которое содержит все отдельные изображения (то есть карту спрайта или карту тайла). Затем используйте CSS, чтобы снова разделить его на отдельные изображения. Это можно сделать, определив общее объявление для фонового изображения, а затем разрешив каждому числовому значению определять смещение внутри этого изображения.

.nr1 .nr2 .nr3 {
background: url(sprites.png) no-repeat;
}
.nr1 { background-position: 0 0 ; }
.nr2 { background-position: 0 -21px ; }
.nr3 { background-position: -21px -42px ; }

Задача нахождения точного смещения может показаться трудоемкой. Но есть несколько бесплатные онлайн инструменты который может сделать это для вас. Я лично пользовалась этот много. Вы можете просто перетащить отдельные изображения в свой веб-браузер, и он создаст одно изображение и необходимый CSS.

Одним из преимуществ использования spritemap является то, что все изображения загружаются вместе. Если вы используете отдельные изображения, вы можете увидеть какое-то мерцание во время загрузки изображений.

2

По вопросам рекламы [email protected]