Знатоки подскажите как это решить - есть скрипт, показывающий время, так же есть изображения от 0 до 9 Суть проблемы: Если чисто единичное, то тайм показывается как нужно, но если двоичное - например 24 часа и 19 секунд, изображения не показывает,прошу помочь Код (Text): $uptime_sega = "<img src='img/number/$day.png'> дней <img src='img/number/$hour.png'> : <img src='img/number/$min.png'> : <img src='/img/number/$sec.png'>" ;
ну так цифр должно быть 10 и ты их комбинируешь. или ты хочешь заморочиться и 60 "цифр" написать? я что-то не въезжаю в суть "проблемы"
ну это потому что ты не проходил алгоритмизации программирования. программа это решение некоторой большой задачи через маленькие шажки. например я бы забацал замену текста на изображение через регулярку с обратным вызовом. Код (PHP): <?php $date = date('Y-m-d H:i:s'); $etad = preg_replace_callback('~(\d)~', function($m){return '<img src="/digit/'.$m[1].'.gif">';}, $date); echo $etad; Код (Text): <img src="/digit/2.gif"><img src="/digit/0.gif"><img src="/digit/1.gif"><img src="/digit/5.gif">-<img src="/digit/0.gif"><img src="/digit/1.gif">-<img src="/digit/1.gif"><img src="/digit/5.gif"> <img src="/digit/0.gif"><img src="/digit/9.gif">:<img src="/digit/5.gif"><img src="/digit/5.gif">:<img src="/digit/2.gif"><img src="/digit/5.gif">
Код (Text): mysql_selectdb ("$db1"); $serv_on=@mysql_fetch_array(mysql_query("SELECT * FROM $db1.`uptime` ORDER BY `starttime` DESC LIMIT 1"), MYSQL_ASSOC); $serv_on['starttime']; $time=time(); $uptime=$time-$serv_on['starttime']; $day = floor(($uptime / 86400)*1.0) ; $calc1 = $day * 86400 ; $calc2 = $uptime - $calc1 ; $hour = floor(($calc2 / 3600)*1.0) ; if ($hour < 10) { $hour = "0".$hour ; } $calc3 = $hour * 3600 ; $calc4 = $calc2 - $calc3 ; $min = floor(($calc4 / 60)*1.0) ; if ($min < 10) { $min = "0".$min ; } $calc5 = $min * 60 ; $sec = floor(($calc4 - $calc5)*1.0) ; if ($sec < 10) { $sec = "0".$sec ; } $uptime_sega = preg_replace_callback('~(\d)~', function($m){return '<img src="wrath/img/number/'.$m[1].'.png">';}, $time); echo $uptime_sega; код, он высчитывает время работы сервера и выводит его , попробовал сделать по твоему примеру, вылезло число в 10 цифр... что я не так делаю?
голову не включаешь. ты проверь что ты передаешь на вход в реплейс. МЕТКУ ВРЕМЕНИ КОТОРУЮ ТЫ САМ ОБЪЯВЛЯЕШЬ ЧЕРЕЗ $TIME=TIME(). НА КОЙ ХЕР ТАМ ВОТ ЭТОТ УБОГИЙ АЛГОРИТМ ВЫЧИСЛЕНИЯ ДНЕЙ-ЧАСОВ-МИНУТ-СЕКУНД ТОГДА НУЖЕН????????????????????????
Код (Text): $date = "$day дней $hour : $min : $sec"; $etad = preg_replace_callback('~(\d)~', function($m){return '<img src="wrath/img/number/'.$m[1].'.png">';}, $date); echo $etad; так работает) благодарю!!
а как же морфология? сервер работает 02 дней? 21 дней? а зачем пробелы? 10 : 23 : 31 - это мало на время похоже.
у меня он работает 0 дней, 1 час, 8 минут 10 секунд) все как должно быть, так отображается).. Тааак..стоп... обновился, значение поменялось...но как? сервак то выключен (
igordata, не заходи в мои аудитории))) а то тебе то невряк мой не нравится, то методы воспитания новичков)))) зрение тебе вылечим. на вот на современное искусство отвлекись: Надеюсь после него на мой ор будешь спокойнее реагировать
хорошо. но можно чуть укоротить Код (PHP): $etad = preg_replace('~(\d)~', '<img src="/digit/\1.gif">', $date);
runcore, я специально оставил вот такой нелогичный вариант. сначала хотел посимволно читать и через свич замену делать. но подумал что будет слишком стёбно. а реплейс через вызов анонимной функции - самое оно для человека снявшегося со снежным пенисом. ему работает и фиг бы с ним