ФорумПрограммированиеPHP для идиотов → Как получить число из строки?

Как получить число из строки?

  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz Март 28, 2010, 10:40 п.п., спустя 3 минуты 3 секунды


    Тоесть можно например брать первых 3 цифры выйдет как бы в пределах от 1 до 1000.
    И выйду как бы коллизии

    а всмысле коллизии?
    Спустя 153 сек.


    формируется в процессе работы скрипта
    Да похер откуда они берутся. Они ассоциированы с урлом. Так? Вопрос прежний, нах хешировать урл?

    чтобы получить случайное число, которое будет зависеть от url. Мне подойдет любое другое решение, необязательно с хешированием.
  • bastonc

    Сообщения: 28 Репутация: N Группа: Кто попало

    Spritz Март 28, 2010, 10:40 п.п., спустя 42 секунды

    ТС собирается циферками опознавательные знаки вешать.  При этом URL вообще не известен. Я пока не сооброжу, но тут явно какая-то лажа зарыта. Мне больше интересно как ТС собирается генерировать псевдослучайное число в заданом малом диапазоне. структура хранения-помойму вообще не проблема,  хош хеши-кстать специально предназанченая для этого структурная еденица, хош словарь динамический создавай…
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Март 28, 2010, 10:41 п.п., спустя 37 секунд

    smackthat, покажи мне несколько примеров:
    1. Строка
    2. Хэш
    3. И результат "брать первых 3 цифры"
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • bastonc

    Сообщения: 28 Репутация: N Группа: Кто попало

    Spritz Март 28, 2010, 10:43 п.п., спустя 2 минуты 11 секунд

    почему бы не вешать эту циферку в самом URL как параметр, один хрен на скрипт передаваться будет, там и обрабатывать будеш-тоже получится уникальный ключ
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz Март 28, 2010, 10:47 п.п., спустя 3 минуты 39 секунд

    Т.е. случайный набор цифровых параметров надо получить на основании урла?
    Ну тогда вариантов можно миллион придумать. Скажем, первый параметр - первая встретившаяся цифра в md5 урла, второй - вторая и.т.д.

    Для надежности можно считать, что буквы это тоже цифры A-1,B-2 …
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Март 28, 2010, 10:47 п.п., спустя 23 часа 59 минут 39 секунд

    smackthat, делай так:
    1. Считаешь кол-во знаков в УРЛе
    2. Если нужно получить число в диапазоне от 1 до 10, то складываешь цифры в получившемся числе из первого шага.
       2.1 Если нужно получить от 1 до 5 (например), а при суммировании цифр получилось 8, то представь диапазон 1-5 сопоставимым к 6-10 (то есть, 7 для тебя будет означать 2). Остальные вариации придумай сам
    3. Не страдай хуйней, делай таблицу привязки страницы к параметрам как сказал Эд, либо Алекс (у них малость разные методы, но суть одинакова).
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz Март 28, 2010, 10:51 п.п., спустя 4 минуты 20 секунд

    пример: есть страничка на сайте с урлом http://trapapa.com/page/novost-pro-to-to


    $url='trapapa.com/page/novost-pro-to-to';

    $column=get_number_from_string($url, 3);
    // сгенерит случайное число на основе урла (тоесть урл это как бы seed в rand())
    // это число при таком вызове будет от 0 до 2 и оно хоть и будет случайным, но результат
    // всегда один и тот же. Например для этого урла число сгенерит 1.

    $div_background_class=get_number_from_string($url, 5);
    // сгенерит число от 0 до 4 для определения фона блока. Сгенерит допустим 4.
    // тоесть для это странички я получил 2 случайные константы, которые характеризую блок с рекламой.


  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Март 28, 2010, 10:58 п.п., спустя 7 минут 17 секунд

    smackthat, если это был для меня пример, то мне надо именно пример, а не набор абстрактных ф-ий
    Спустя 36 сек.
    Мне интересен только твой алгоритм получения уникального числа из строки
    Спустя 168 сек.
    К примеру:

    строка | хэш | число
    test1 | c4ca4238a0b923820dcc509a6f75849b | c4ca42
    test2 | c4ca428be1ec697b14ad3a53b3714361 | c4ca42

    а вот и коллизия, теперь меня понимаешь?
    зы. хэши выдуманы
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz Март 28, 2010, 11:07 п.п., спустя 9 минут 12 секунд

    adw0rd, да для тебя.

    Мне интересен только твой алгоритм получения уникального числа из строки

    так в этом и проблема, я не знаю как такое сделать, тоесть эту функцию get_number_from_string я и хочу написать


    а вот и коллизия, теперь меня понимаешь?

    да, тоесть числа могут повториться. Но это мне и нужно. 2 странички могут выдать 1 и тоже число, так как у меня 1000 страничек, а вариантов выходного числа только 3 или 5, тоесть они обязательно будут повторяться. Незнаю как еще объяснить.

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Март 28, 2010, 11:10 п.п., спустя 2 минуты 25 секунд

    Да, теперь я тебя вообще не понимаю. Тебе получается надо не уникализировать каждый урл, а категоризировать. Чтобы одни отдавали 3, другие 5 и т.д.?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz Март 28, 2010, 11:16 п.п., спустя 6 минут 2 секунды

    тоесть я могбы для каждой страницы сгенерить набор параметров и записать их в базу данных. Но я хочу генерить их на лету. Параметр например: номер колонки, в которой будет рекламный блок от 0 до 3.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 28, 2010, 11:19 п.п., спустя 3 минуты 41 секунду


    тоесть я могбы для каждой страницы сгенерить набор параметров и записать их в базу данных. Но я хочу генерить их на лету. Параметр например: номер колонки, в которой будет рекламный блок от 0 до 3.
    бери хешем - мд5 урла + айди колонки например, колизий не будет + длина хеша стандартная. велосипед короче не придумывай
    Сапожник без сапог
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz Март 28, 2010, 11:22 п.п., спустя 2 минуты 29 секунд


    Да, теперь я тебя вообще не понимаю. Тебе получается надо не уникализировать каждый урл, а категоризировать. Чтобы одни отдавали 3, другие 5 и т.д.?
    Да именно это ему и надо, я тоже не сразу въехал. Только не понятно в чем проблема. Алгоритмов мильон …

    Бери хеш, перебирай последовательно символы, как только нашел число меньше или равное твоему параметру - есть результат.
    Ели вдруг во всем хеше не обнаружилось такого (что маловероятно), бери следующий хеш от хеша и опять перебирай. В чем проблема?
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz Март 28, 2010, 11:27 п.п., спустя 4 минуты 38 секунд

    спасибо за идеи, то что нужно было
  • bastonc

    Сообщения: 28 Репутация: N Группа: Кто попало

    Spritz Март 28, 2010, 11:29 п.п., спустя 2 минуты 48 секунд

    Да алгоритм представленый ТС, вполне рабочий. непонятно чё он трёт на этом форуме. Попробовал? Работает? А оно работает-не может не работать. ЗАганяй в хеш-массив если рекоамы не много, если много - в базу и всё

Пожалуйста, авторизуйтесь, чтобы написать комментарий!