Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > перевод строки в число


Автор: phpLiNa 21.4.2008, 16:05
возникла необходимость перевести строку в число! то есть, чтоб каждой строке соответствовало оригинальное число (8-10 знаков). Желательно с возможностью реализации на PHP

PS поиск в интернете никчему не привел, поэтому обращаюсь к вам

Автор: Feldmarschall 21.4.2008, 16:28
Да уж. Я бы удивился, если бы поиск в интернете решения такой задачи к чему-нибудь привел.

В общем, делаешь массив.
$a=array('а'=>1,'б'=>2,'в'=>3... 'я'=>);
дальше пробегаешь по слову и прибавляешь к значению массива восьмизначное число:
$str_out.=$a[$str[$i]]+956833669;

Ответ такой же бессмысленный, как и вопрос

Добавлено через 1 минуту и 8 секунд
это если я правильно понял "каждой букве" вместо "каждой строке"

Автор: phpLiNa 21.4.2008, 16:39
ну вообще то имеется ввиду именно строке (а не букве). Ну, грубо говоря, закодирвать, но так, что бы код (при повторном кодировании) был такой же,как и в предыдущий раз.
и еще не хотелось бы, что бы строчка из (предположим) 20 символов кодировалась 20 цифрами 

уж лучше забыть про оригинальность...
просто возможность совпадения кодов разных строк сделать минимальной

Автор: Feldmarschall 21.4.2008, 16:43
а. тогда я скажу тебе, что искать в интернете. слова "контрольная сумма"

Автор: Sannis 21.4.2008, 16:45
А почему цифрами именно? Может сделать "как обычно" md5() или sha()?

Если цифрами, то либо как Feldmarschall написал:
Код

$a=array('а'=>1,'б'=>2,'в'=>3... 'я'=>);
$str_out = '';
for( $i = 0; $i < strlen($str); $i++ )
{
    $str_out.=$a[$str[$i]];
}

или можно ещё так:
Код

$str_out = '';
for( $i = 0; $i < strlen($str); $i++ )
{
    $str_out.=ord($str[$i]);
}

Автор: phpLiNa 23.4.2008, 10:07
спасибо всем! проблема решилась ипользованием функции crc32   smile 

Автор: CyClon 23.4.2008, 13:08
Я так понял, нужно перевести, например, строку "Пятьдесят" в "50"? О чем тогда тут пишут?

Автор: Fortop 23.4.2008, 13:24
Цитата(CyClon @  23.4.2008,  13:08 Найти цитируемый пост)
Я так понял, нужно перевести, например, строку "Пятьдесят" в "50"? О чем тогда тут пишут? 

нет smile
судя по откликам автора, под этим 
Цитата(phpLiNa @  21.4.2008,  16:05 Найти цитируемый пост)
 оригинальное число 

она подразумевала "уникальное число"



Автор: awers 23.4.2008, 13:32
Fortop, со скольки лет качаешь телепатические способности? Тут неодного слово небыло про контрольную сумму, а ты понял )

Автор: Fortop 23.4.2008, 13:49
awers,  тут было, как минимум, 2 таких слова ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)