Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexandremanowar

Converter alfa em numérico

Recommended Posts

E a e pessoal beleza

 

Como eu faço para converter por exemplo essa string:

$string = Q2566RBQA1826R;

em números, apenas números e também gostaria de saber como fazer o processo reverso converter os números novamente na string que era antes? É possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1.

você pode usar preg_replace para retirar letras da string:

 

$str = preg_replace("/[a-z/i", "", $str);

2.

não entendi de onde você quer arranjar as letras para colocar, após tê-las retirado...

 

Se a strig for 21465, como colocará as letrass de novo?

 

O que você pode fazer é manter as duas strings: uma com letras e números e outra, somente com números

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae beleza

 

Cara valeu pela atenção!

 

Na verdade eu não quero retirar as letras eu quero converte-las em número por exemplo já vi o caso de eu pegar uma quantidade de números por exemplo:

 

$numero = 5434656;

 

E converter em hexadecimal então fica alfanumérico, no caso agora quero pegar uma string alfanumérica e torna-la apenas em númérica conver para numérica, é possível? E fazer o processo reverso pegar o que foi convertido em numérico e retornar para alfanumérico como um tipo de prova real

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae beleza

 

Cara então testei estou olhando os links que você deixou mas não esta funcionando, vou explicar melhor para ver se a idéia flui, na verdade funciona da seguinte forma, resumindo o assunto.

 

Me explica uma o seguinte então que acho que será mais fácil é possíve gerar um binário disso: Q2566RBQA1826R ?

 

Valeu pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu quero converter para binário simples mesmo, eu fiz um exemplo aqui olha só:

 

Primeiro eu convertir para decimal e depois para binário, da uma olhada:

$n1 = hexdec(Q2566RBQA1826R); 
$n1 = decbin($n1);
echo "hex = $n1";

O que você achou? Acredito que esse número binário nunca vai se repetir a não ser que seja usada esse mesmo valor para a conversão ou seja Q2566RBQA1826R Certo? Ou estou enganado existe a possibilidade de uma outra string gerar o mesmo binário? Acredito que não, qual sua opinião?

Esse modo que eu criei se encaixa em qual dos dois que você citou acima?

Compartilhar este post


Link para o post
Compartilhar em outros sites

NãoQual é a finalidade? É gerar IDs únicos? Use uniqid().

 

Mas entenda o seguinte: não existem as letras de G a Z na base hexadecimal. Logo, Q e R retornarão zero, não o código binário.

 

Você pode criar uma função que trabalha com a base 36 (10 digitos + 26 letras)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo entendi! Como eu faria para usar a base 16 que você mencionou? Deve ser a melhor forma, você poderia me explicar?

 

Na verdade é o qie você falou preciso gerar um id unico o problema é preciso gerar ele em php e em .net, porque o meu aplicativo desktop esta em .net e o online esta em php e preciso que os dois peguem esse string que estou usando como exemplo e gerar o resultado identico, tanto o php quanto o .net, por isso acho que usar em binário é a melhor sulução.

O que você acha, como devo fazer? Talvez usando a ASC seja uma boa opção também, o que você acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conheço .NET, mas essa linguagem não tem uma função de hash MD5? Você poderia gerar uma string em hash conforme o horário atual (timestamp é uma boa saída, mas não sei se .NET tem isso).

 

A base 16 só possui os seguintes caracteres: 0 1 2 3 4 5 6 7 8 9 a b c d e f. Logo não pode usar Q e R, como na string que você postou.

 

Veja:

http://forum.imasters.com.br/index.php?showtopic=289420

 

Você pode mudar as letras aceitas. Em range(), use apenas o intervalo A-F

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara é o seguinte o problema é que o pessoal exige que o id seja gerado a partir do serial number do hd! Esse é o maior problema, o hash com md5 é uma boa solução já uso ele para gerar senhas e outras coisas usando data hora essa coisas, mas eu preciso gerar o ID do serial number do hd. Porém bateu uma boa idéia agora o que você acha se ao invés de binário eu apenas converter para decimal? Tabém é uam boa solução e com decimal eu iria conseguir gerar nas duas linguagens, vou fazer um teste com decimal

 

Cara agradeço mesmo a força que você me deu, assim que eu chegar em uma conclusão eu posto aqui, mas se você tiver uma boa sugestão eu agradeço

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

quanto à base, pode ecolher qualquer uma: decimal, octal, hexadecimal... base 11, 21, 18...

Claro que você terá de implementar alguma delas, caso não exista, nativamente, na linguagem.

 

Como você pega o serial do HD? Não faço ideia de como fazer isso... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara o serial do hd eu pego pelo aplicativo desktop, na verdade posso pegar serial de qualquer hardware então pegando pelo aplicativo desktop eu gravo em um banco de dados que acesso pelo php para consultar, se vocÊ quiser me passa seu email que depois eu te mando o cédigo em .net que faz isso, o php em si não consegue manipular hardware

 

Mas deixa eu te fazer uma outra pergunta como eu faria para converter a string para ascii? Pode ser uma boa solução! Você sabe me explicar?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.