$outbits) { $tmp = substr($buff, 0, $outbits); $buff = substr($buff, $outbits); $out .= chr(bindec(CreateMask($tmp, $outbits, $strOutBitMask))); } $i++; } // Ak nam nieco nevyuzite zostalo, doplnime nuly a prilepime na koniec if (strlen($buff) > 0) { while (strlen($buff) < $out_char_len) $buff .= "0"; $out .= chr(bindec(CreateMask($buff, $outbits, $strOutBitMask))); } return $out; } // Pokusny text: $txt = "aa32;ldkkkkkas0d9ci23jjjdflamca?D@#KDDDDASJDDDDDDDDDDDD#D("; /* Takze ako to cele vlastne funguje ? Abstraktne som sa snazil urobit toto: z daneho vstupu (1. parameter) urobit BIT-Stream. Samozrejme treba odfiltrovat okolite bity, to nastavujes v druhom parametri (integer). Dalej sa tento Bit-stream rozseka podla noveho poctu bitov a nasype do stringu, pricom sa doplna len na hodnoty urcene bit-maskou (treti parameter). Ukazka: majme vstup: ("ABC", 11111111, 111) -> bit-stream 010000010100001001000011 -> bit-mask filter (kedze je maska 11111111, tak sa nic nestraca) 010000010100001001000011 -> rozsekanie podla poctu "1" bitov v output maske 010 000 010 100 001 001 000 011 -> doplnenie do dlzky char v output streame (default 8) 00000010 00000000 00000010 00000100 00000001 00000001 00000000 00000011 -> zmena na znaky a spojenie do stringu, vratenie hodnoty... tu dalej odpodrucam spravit BIT-OR s nejakou vhodnou maskou, v tomto pripade to je 64 (01000000) co sposobi ze string bude zo znakov 01000001 - 01000111. Tu by som poznamenal, ze na realne pouzitie je skor UBSC($str, 11111111, 1110) a OR-nut to s 65, takto nebudes mat '@' v prenasanom texte... (<0000001000000000000000100000010000000001000000010000000000000011>, 111, 11111111) uff, no proste sa to obdobnym sposobom dekoduje, jo - tie bity co si pridal, odstranis spravnou maskou :-), pripadne to AND-ni s 0 :-))). Hmm, nezabudaj ze ked si konvertujes horedole, tak musis pouzivat rovnake bit-masky!!! tj: $str == UBSC(UBSC($str, $x, $y), $y, $x); alebo: $tmp = UBSC($str, $x, $y) $str == UBSC($tmp, $y, $x) uff, uz mi to nejak nemysli, este posledna vec - ja som pri zadavani parametra pouzil funkciu bindec(), uz si nespominam ze ci to robilo problemy, ale radsej si to ocheckuj... */ /* $binaryencoded = UBSC($txt,bindec(11111111),bindec(1110)); $decoded = UBSC($binaryencoded, bindec(1110), bindec(11111111)); $transferable = $binaryencoded; for($i = 0; $i < strlen($binaryencoded); $i++) $transferable[$i] = chr(65 | ord($binaryencoded[$i])); echo "$txt\n"; echo "$transferable\n"; // prenositelna forma //echo "$binaryencoded\n"; echo "$decoded\n"; */ ?>