Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zamiana tekstu na zapis dwójkowy, jak poprawnie zapisać tekst w postaci 0 1
bigda
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.04.2018

Ostrzeżenie: (0%)
-----


Dobry wieczór,

chcę zamienić tekst (litery, spacje, znaki specjalne) na zapis dwójkowy - każdy znak ma być reprezentowany przez odpowiadającą mu liczbę zapisaną w systemie binarnym.
Co do zasady nie jest to problem: funkcja split() podzieli mi wszystko na znaki, ord() na liczby dziesiętne, potem zamienię to sobie na 0 i 1 base_convert().

Problem zaczyna się, kiedy w tekście pojawiają się polskie litery. Split() wyświetla mi dziwne znaczki, kiedy dzielę na pojedyncze litery (jak na grupy dwuliterowe, wszystko jest OK), ord() polskie litery wyświetla jako dwie liczby, z których każda koduje te dziwne znaczki, które pokazują się w splicie().

Cała rzecz polega na tym, że chcę się hobbystycznie pobawić kryptografią. Oczywiście mogę zrobić sobie jakąś swoją funkcję, która przyporządkuje mi każdy możliwy znak do określonej wartości liczbowej, ale zastanawiam się, czy jest jakiś sposób na uchwycenie polskich liter w istniejących funkcjach.
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


https://www.php.net/manual/en/function.mb-split.php


--------------------
Go to the top of the page
+Quote Post
bigda
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.04.2018

Ostrzeżenie: (0%)
-----


Wielkie dzięki,

co prawda nie zupełnie o to m chodziło, bo mb_split() zamienia mi ciąg w tablicę, z którą i tak jest potem kłopot, ale naprowadziłeś mnie, a baz tego nie dałbym rady.
Ostatecznie zrobiłem to tak:

  1. zmienna=mb_str_split ('jedzą piją lulki palą', 1, );
  2.  
  3. foreach($zmienna as $value)
  4. {
  5. echo str_pad(decbin(ord($value)), 8, 0, STR_PAD_LEFT).' ';
  6. }


Jeszcze raz wielkie dzięki!
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A funkcja split, to niby co zwracała?

Zresztą jakiejkolwiek byś nie użył i niezależnie co będzie zwracać i tak musisz mieć jakaś pętlę.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:13