За последние 24 часа нас посетили 30440 программистов и 1806 роботов. Сейчас ищут 866 программистов ...

Смена цифры на изображение

Тема в разделе "PHP для новичков", создана пользователем 6stPROD, 15 янв 2015.

  1. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    Знатоки подскажите как это решить - есть скрипт, показывающий время, так же есть изображения от 0 до 9

    Суть проблемы:

    Если чисто единичное, то тайм показывается как нужно, но если двоичное - например 24 часа и 19 секунд, изображения не показывает,прошу помочь

    Код (Text):
    1. $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'>" ;
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну так цифр должно быть 10 и ты их комбинируешь. или ты хочешь заморочиться и 60 "цифр" написать? я что-то не въезжаю в суть "проблемы"
     
  3. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    Вопрос в том что я не понимаю как их скомбинировать в коде
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну это потому что ты не проходил алгоритмизации программирования. программа это решение некоторой большой задачи через маленькие шажки. например я бы забацал замену текста на изображение через регулярку с обратным вызовом.

    Код (PHP):
    1. <?php
    2. $date = date('Y-m-d H:i:s');
    3. $etad = preg_replace_callback('~(\d)~', function($m){return '<img src="/digit/'.$m[1].'.gif">';}, $date);
    4. echo $etad; 
    Код (Text):
    1. <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">
     
  5. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    Код (Text):
    1. mysql_selectdb ("$db1");
    2. $serv_on=@mysql_fetch_array(mysql_query("SELECT * FROM $db1.`uptime` ORDER BY `starttime` DESC LIMIT 1"), MYSQL_ASSOC);
    3. $serv_on['starttime'];
    4. $time=time();
    5. $uptime=$time-$serv_on['starttime'];
    6. $day = floor(($uptime / 86400)*1.0) ;
    7.         $calc1 = $day * 86400 ;
    8.         $calc2 = $uptime - $calc1 ;
    9.         $hour = floor(($calc2 / 3600)*1.0) ;
    10.         if ($hour < 10) {
    11.         $hour = "0".$hour ;
    12. }
    13.         $calc3 = $hour * 3600 ;
    14.         $calc4 = $calc2 - $calc3 ;
    15.         $min = floor(($calc4 / 60)*1.0) ;
    16.         if ($min < 10) {
    17.         $min = "0".$min ;
    18. }
    19.         $calc5 = $min * 60 ;
    20.         $sec = floor(($calc4 - $calc5)*1.0) ;
    21.         if ($sec < 10) {
    22.         $sec = "0".$sec ;
    23. }
    24.  
    25. $uptime_sega = preg_replace_callback('~(\d)~', function($m){return '<img src="wrath/img/number/'.$m[1].'.png">';}, $time);
    26. echo $uptime_sega;
    27.  
    28.  
    29.  

    код, он высчитывает время работы сервера и выводит его , попробовал сделать по твоему примеру, вылезло число в 10 цифр... что я не так делаю?
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    голову не включаешь. ты проверь что ты передаешь на вход в реплейс. МЕТКУ ВРЕМЕНИ КОТОРУЮ ТЫ САМ ОБЪЯВЛЯЕШЬ ЧЕРЕЗ $TIME=TIME(). НА КОЙ ХЕР ТАМ ВОТ ЭТОТ УБОГИЙ АЛГОРИТМ ВЫЧИСЛЕНИЯ ДНЕЙ-ЧАСОВ-МИНУТ-СЕКУНД ТОГДА НУЖЕН????????????????????????
     
  7. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    Код (Text):
    1. $date = "$day дней $hour : $min : $sec";
    2. $etad = preg_replace_callback('~(\d)~', function($m){return '<img src="wrath/img/number/'.$m[1].'.png">';}, $date);
    3. echo $etad;
    так работает) благодарю!!
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а как же морфология? сервер работает 02 дней? 21 дней? а зачем пробелы? 10 : 23 : 31 - это мало на время похоже.
     
  9. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    у меня он работает 0 дней, 1 час, 8 минут 10 секунд) все как должно быть, так отображается)..


    Тааак..стоп... обновился, значение поменялось...но как? сервак то выключен (
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну у тебя старт из базы читается. не вижу связи с физически работающей машиной :D
     
  11. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    :(...да в принципе это не особо важно
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Шо ж так орать-то, у меня из глаз кровь потекла
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    igordata, не заходи в мои аудитории))) а то тебе то невряк мой не нравится, то методы воспитания новичков)))) зрение тебе вылечим. на вот на современное искусство отвлекись:

    Надеюсь после него на мой ор будешь спокойнее реагировать :D
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    боян :D но в тему
     
  15. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    хорошо. но можно чуть укоротить
    Код (PHP):
    1. $etad = preg_replace('~(\d)~', '<img src="/digit/\1.gif">', $date);
     
  16. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    runcore, я специально оставил вот такой нелогичный вариант. сначала хотел посимволно читать и через свич замену делать. но подумал что будет слишком стёбно. а реплейс через вызов анонимной функции - самое оно для человека снявшегося со снежным пенисом. ему работает и фиг бы с ним :D