Autor Zpráva
Testing
Profil *
Je nejaká možnosť, prekódovať zadané znaky do číselnej hodnoty ?
Napr.
function num2($hodnota_preoduj) {
//$hodnota_preoduj akcie z premennou
}

 echo num2("FUNKCIA"); // return napr. 12345

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
etexweb
Profil
Niečo podobné je v manuáli, viď - function.chr()
Darker
Profil
Testing:
Je nejaká možnosť, prekódovať zadané znaky do číselnej hodnoty ?
ASCII například.
Nebo binární kód:
01000001011100110110100100100000011101000110000101101011011010000110110001100101001000000111001101100101001000000111010001101111001000000110010001100101011011000110000100101110
Překlad.
Zdroj.

Kód využívá funkci zmíněnou etexwebem akorát pak konvertuje na binární soustavu. Každý znak má 8bitů.
Majkl578
Profil
Testing:
do číselnej hodnoty
Asi bys měl prvně definovat co je číselná hodnota a co má být výstupem. Těžko říct co jsi myslel, osobně bych si asi představil konverzi do šestnáctkového zápisu (\x..) a vypsání takového stringu.

Tedy např. takto:
$input = 'Lorem ipsum dolor sit amet.';
$output = '';
for ($i = 0, $len = strlen($input); $i < $len; $i++) {
    $output .= '\\x' . dechex(ord($input[$i]));
}
var_dump($output);
Čehož výstup bude:
\x4c\x6f\x72\x65\x6d\x20\x69\x70\x73\x75\x6d\x20\x64\x6f\x6c\x6f\x72\x20\x73\x69\x74\x20\x61\x6d\x65\x74\x2e

etexweb:
Asi jsi myslel ord.

Darker:
To je otřesný kód. Můžeš vysvětlit, proč na něj odkazuješ a nevložíš ho přímo sem? Abys tam v budoucnu mohl dělat reklamu nebo podobná zvěrstva?
Z čistě preventivních a archivních důvodů jej pro jistotu přikládám sem:
<?php
header("Content-Type:text/plain");
if(!isset($_GET['str']))$_GET['str']="string";
$string = $_GET['str'];
if(!isset($_GET['bin']))$_GET['bin']="01110011";
$bin = $_GET['bin'];
$binary="";


  $text="";
for($i = 0; $i < strlen($string); $i++) {
    $BACT=base_convert(ord($string[$i]),10,2); 
    while(strlen($BACT)<8)$BACT="0$BACT";
    $binary.=$BACT;
    //echo $BACT.PHP_EOL;
    $text.=$BACT;
    }
echo $text;
if(strlen($text)>80)die();
//echo $binary;    
echo PHP_EOL."___________________________________________________".PHP_EOL;
//$string = preg_replace ('/(\d+)/e', 'base_convert (\\1, 10, 2)', $string);
$bin = preg_replace ('~[^0-1]~', '', $bin);
if(strlen($bin)%8!=0)
 die("Data must be dividible by 8.".PHP_EOL.$bin);
echo "Converting binary to readable text:".PHP_EOL;
//echo $string; 
//$bin=$binary;
for($i = 0; $i < strlen($bin); $i+=8) {
    $piece=substr($bin,$i,8);
    //echo "--------\$i=$i---------".PHP_EOL.$piece.PHP_EOL;
    
      echo chr(base_convert((int)$piece,2,10));
}



  function str2bin($string){
 $binary="";
 for($i = 0; $i < strlen($string); $i++) {
    $BACT=base_convert(ord($string[$i]),10,2); 
    while(strlen($BACT)<8)$BACT="0$BACT";
    $binary.=$BACT;
 }
 return $binary;
}
function bin2str($bin){
 $bin = preg_replace ('~[^0-1]~', '', $bin);
 $text="";
 for($i = 0; $i < strlen($bin); $i+=8) {
  $piece=substr($bin,$i,8);
  $text.=chr(base_convert((int)$piece,2,10));
 }
 return $text;
}
?>
Výstup:
011100110111010001110010011010010110111001100111
___________________________________________________
Converting binary to readable text:
Asi takhle se to dela.
Darker
Profil
Majkl578:
Abys tam v budoucnu mohl dělat reklamu nebo podobná zvěrstva?
Koukám že PetrZZZ není jediný kdo trpí paranoiou. Kód je cca rok starý, ekontroloval jsem ho, jen jsem si na něj v souvislosti s tímto vláknem vzpoměl. Vzhledem k tomu že funguje lze kód snadno upravit do neotřesné podoby.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0