Newsgroup: it.comp.www.php
Titolo: Convertire caratteri o parole da binario ad ASCII e viceversa

Ciao, vorrei convertire attraverso PHP un carattere o in genere una 
parola, ossia un insieme di caratteri in codice binario e viceversa, 
verso quale funzione o meccanismo mi indirizzate?
Se ad esempio scrivendo amore vorrei ottenere: 01100001 01101101 
01101111 01110010 01100101 e viceversa... scrivendo 01100001 01101101 
01101111 01110010 01100101, ottenere la parola amore.
Usando dei caratteri particolati tipo 🙋, è possibile sempre tramite 
qualche funzione ricavarne il binario e viceversa?
Grazie per l'attenzione 😃


Se ti limiti alla tabella ASCII la funzione che cerchi è ord(), converte
un carattere a intero.
Per stringhe in altri encoding (come l'emoticon che hai messo) converti
con mb_convert_encoding() in UTF-8 e "monta insieme" il ritorno per avere
il numero completo.
 
Ciao!

 Ciao!
 
 
Grazie per l'intervento :)
Cercavo, se c'è, una funzione del tipo: prende, per esempio, il 
carattere a e restituisce il corrispettivo binario 01100001
 
 
 


 
decbin() prende un intero e ritorna una stringa contenente la sua
rappresentazione binaria.
 
Ciao!

 Ciao!
 
Grazie mille, me la studierò :)
Un saluto
 
 

Trego <NO...@AM.it> ha scritto:

$char = "a";
 
$bin = decbin(ord($char));
 
echo $bin;
 
 

 echo $bin;
 
Grazie per l'esempio :)
E se ho una parola, tipo amore e vorrei ottenere la conversione di tutte 
le lettere che compongono la parola, che esempio mi proponi(ete)?
 
 


Non sai scrivere un for?
 
Ciao!


echo wordwrap(
    implode(' ',
        array_map(
            function($pad_str) {
                 return str_pad($pad_str, 8, 0, STR_PAD_LEFT);
            },
            array_map(
                'decbin',
                array_map(
                   'ord',
                   preg_split('##', 'AMORE', -1, PREG_SPLIT_NO_EMPTY)
                )
            )
        )
    )
);
 
Leonardo
-- 
 
A terrible beauty is born.
                                     - W. B. Yeats, Easter 1916

 
 
LOL - well played :)
 
Ciao!


Con meno array_map ma il concetto è quello.
 
echo implode(
	array_map(
		function($a){return str_pad(decbin(ord($a)), 8, 0, STR_PAD_LEFT) . ' ';},str_split('AMORE')
	)
);
 

 );
 
Grazie anche a te, pure questa funziona :)
E se ad esempio partendo dal codice binario: 01000001 01001101 01001111 
01010010 01000101 volessi riottenere la parola AMORE che esempio mi 
proponete?
 
 

 Leonardo
 
Grazie, funziona alla perfezione.
 
 
 
 
 
 

 Ciao!
 
 
Sì, certo, però trovando persone disponibili e gentili, meglio avere 
qualcosa da cui prendere spunto :)
 

 proponete?
 
Ho il tarlo che mi bruca la corteccia cerebrale: non è che ci stai 
chiedendo di fare i compiti a casa per te?
 
La richiesta è abbastanza inusuale...
 
Bye.
 
 

 Bye.
 
:)
Vorrei realizzare un convertitore da testo normale a codice binario e 
viceversa, tutto qua :)
 
 
 


$string = "01000001 01001101 01001111 >01010010 01000101 ";
 
print preg_replace_callback('#([01]{8})[^01]*#ms',function($O){return chr(bindec($O[1]));}, $string);


 Leonardo
 
Funziona, grazie :)
Presenta un problema con le lettere accentate, ma correggimi se sbaglio, 
potrei ovviare a ciò usando: header(Content-Type: text/html; charset=utf-8).
Oppure non occorrerebbe, con qualche modifica, usando appunto 
header(Content-Type: text/html; charset=utf-8)....
 
 
 
 

 charset=utf-8).
 
Funziona solo coi caratteri ASCII. Le accentate non sono ASCII.
 
Se vuoi rappresentare le accentate (e molti altri caratteri) devi 
studiarti bene come funzionano i charset, in particolare UTF-8, che è a 
lunghezza variabile.
 
Il che significa che le accentate saranno rappresentate da due byte 
invece che da uno, mentre i kanji, gli hanzi e il klingon da 3 byte, per 
esempio.
 
Buon divertimento. :)
 
Bye.