Binario a texto y viceversa

Iniciado por Sinedra, 1 Marzo 2011, 23:45 PM

0 Miembros y 1 Visitante están viendo este tema.

Sinedra

Hola a todos, bueno estoy programando un convertidor para mi web, texto a su md5, base64 etc..
dentro de lo que quiero hacer es transformar texto a binario y binario a texto, pero no he encontrado nada de info de como hacerlo ya que no hay funciones en php que lo hagan. solo encontre esta web http://www.nickciske.com/tools/binary.php, quiero hacer algo parecido a eso alguien me puede orientar como funciona esta transformacion o si tienes alguna funcion en php que realize ese trabajo. Saludos

Sinedra

#1
Acabo de encontrar esto pero al probarlo carga, carga y carga y nunca se muestra el resultado sera que hay un loop infinito por ahi? :S

CitarBinary to Text

<?
function bin2text($bin_str)
{
   $text_str = '';
   $chars = explode("\n", chunk_split(str_replace("\n", '', $bin_str), 8));
   $_I = count($chars);
   for($i = 0; $i < $_I; $text_str .= chr(bindec($chars[$i])), $i  );
   return $text_str;
}

function text2bin($txt_str)
{
   $len = strlen($txt_str);
   $bin = '';
   for($i = 0; $i < $len; $i  )
   {
       $bin .= strlen(decbin(ord($txt_str[$i]))) < 8 ? str_pad(decbin(ord($txt_str[$i])), 8, 0, STR_PAD_LEFT) : decbin(ord($txt_str[$i]));
   }
   return $bin;
}
print text2bin('How are you gentlements?');
?>

http://www.php.happycodings.com/Algorithms/code8.html

Shell Root

:D, yo también necesito algo así. Lo haré en PHP con POO, -para practicar-
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Sinedra


Shell Root

Un pequeño avance apenas empece. De decimal a binario. Quiero que sea más gráfico en la presentación de resultados.
Código (php) [Seleccionar]
  function sBinario( $pNum ){
    $sReturn = "";
    while( $pNum > 0 ){
      $aNum = $pNum;
      $aNum = floor( $pNum/2 );
      if( ($pNum%2) == 0 ){ $sReturn .= 0; }else{ $sReturn .= 1; }
      $pNum = $aNum;
    }
    return strrev($sReturn);
  }

  print sBinario(805)."\n";
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

#!drvy

Hola,
@Sinedra, el codigo que has puesto mas arriba tiene 2 pequeños fallos y por eso entrabas en un loop infinito.
al final de cada for la variable $i no esta acompañada del ++ necesario.

el codigo funcional lo tienes aquí:

Código (php) [Seleccionar]
<?php 
function bin2text($bin_str

    
$text_str ''
    
$chars explode("\n"chunk_split(str_replace("\n"''$bin_str), 8)); 
    
$_I count($chars); 
    for(
$i 0$i $_I$text_str .= chr(bindec($chars[$i])), $i++  ); 
    return 
$text_str


function 
text2bin($txt_str

    
$len strlen($txt_str); 
    
$bin ''
    for(
$i 0$i $len$i++  ) 
    { 
        
$bin .= strlen(decbin(ord($txt_str[$i]))) < str_pad(decbin(ord($txt_str[$i])), 80STR_PAD_LEFT) : decbin(ord($txt_str[$i])); 
    } 
    return 
$bin

print 
text2bin('How are you gentlements?');
print 
'<br />';
print 
bin2text(text2bin('How are you gentlements?'));
?>


Saludos

Sinedra