Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

40,023 questions

51,974 answers

573 users

How to encode characters into digits in PHP

2 Answers

0 votes
bcscale(0);
function EncodeASCIIToBase10($s)
{
    $base10 = "0";
    for ($i = strlen($s) - 1; $i >= 0; $i--)
    {
        // ASCII table start from 0 to 255 (256 characters)
        $base10 = bcadd($base10, bcmul(ord($s[$i]), bcpow(256, $i)));
    }
    return $base10;
}
function DecodeBase10ToASCII($base10)
{
    $ASCII = "";
    do
    {
        $remainder = bcmod($base10, 256);
        $base10 = bcdiv($base10, 256);
        $ASCII .= chr($remainder);
    } while ($base10 > 0);
 
    return $ASCII;
}
 
$base10 = EncodeASCIIToBase10("A"); 
echo "base10 = " . $base10 . "<br />"; // base10 = 65

$ASCII = DecodeBase10ToASCII($base10); 
echo "ASCII = " . $ASCII . "<br />"; // ASCII = A
 
$base10 = EncodeASCIIToBase10("AB");
echo "base10 = " . $base10 . "<br />"; // base10 = 16961

$ASCII = DecodeBase10ToASCII($base10);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = AB

$base10 = EncodeASCIIToBase10("PHP");
echo "base10 = " . $base10 . "<br />"; // base10 = 5261392

$ASCII = DecodeBase10ToASCII($base10);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = PHP
 
$base10 = EncodeASCIIToBase10("encoding");
echo "base10 = " . $base10 . "<br />"; // base10 =  7453010313431182949

$ASCII = DecodeBase10ToASCII($base10);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = encoding


/*
run: 

base10 = 65
ASCII = A
base10 = 16961
ASCII = AB
base10 = 5261392
ASCII = PHP
base10 = 7453010313431182949
ASCII = encoding

*/


answered Sep 25, 2014 by avibootz
edited Jun 1, 2016 by avibootz
0 votes
function EncodeToASCIIValues($s)
{
    $ASCIIValues = "";
    for ($i = 0; $i < strlen($s); $i++)
    {
        $ASCIIValues .= sprintf("%03d", ord($s[$i]));    
    }
    return $ASCIIValues;
}
 
function DecodeToASCIIChars($encode)
{
    $ASCIIChars = "";
    for ($i = 0; $i < strlen($encode); $i += 3)
    {
        $ASCIIChars .= chr($encode[$i].$encode[$i + 1].$encode[$i + 2]);
    }
    return $ASCIIChars;
}
 
$encode = EncodeToASCIIValues('A');
echo "encode = " . $encode . "<br />"; // encode = 065

$ASCII = DecodeToASCIIChars($encode);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = A
 
$encode = EncodeToASCIIValues('AB');
echo "encode = " . $encode . "<br />"; // encode = 065066

$ASCII = DecodeToASCIIChars($encode);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = AB
 
$encode = EncodeToASCIIValues('PHP');
echo "encode = " . $encode . "<br />"; // encode = 080072080

$ASCII = DecodeToASCIIChars($encode);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = PHP
 
$encode = EncodeToASCIIValues('encoding');
echo "encode = " . $encode . "<br />"; // encode = 101110099111100105110103

$ASCII = DecodeToASCIIChars($encode);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = encoding


/*
run: 

encode = 065
ASCII = A
encode = 065066
ASCII = AB
encode = 080072080
ASCII = PHP
encode = 101110099111100105110103
ASCII = encoding

*/


answered Sep 26, 2014 by avibootz
edited Jun 1, 2016 by avibootz

Related questions

1 answer 246 views
1 answer 225 views
2 answers 230 views
230 views asked Jul 22, 2016 by avibootz
2 answers 237 views
2 answers 220 views
...