Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Konwerter znaków
KR2615
post 2.09.2015, 08:22:47
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Witajcie. Dzisiaj bawię się bramką SMS Portecha. Jest to fizyczne urządzenie, prawdopodobnie produkcji radzieckiej smile.gif z 1999 roku. Pobieram z niego treści SMSów telnetem i dalej przekazuję do skryptu PHP. Wszystko jest OK do puki w SMSie nie pojawi się polski znak. Wtedy cała wiadomość wygląda mniej więcej tak:
Cytat
004E0069006500200063006800630065002000730069011900200064006F0077006900650064007A
00690065010700200063007A0079002000740065017C0020006E0069006500200

Testowo wysłałem wiadomość składającą się tylko z dużego Ż z kropką. Otrzymałem:
Cytat
017B

Czy ktoś z Was mógłby podrzucić funkcję konwertującą te dziwne znaki do ludzkiego formatu? Z góry dzięki!


--------------------
Go to the top of the page
+Quote Post
kapslokk
post 2.09.2015, 08:32:00
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


  1. echo mb_convert_encoding('Ż', 'UTF-8', 'HTML-ENTITIES');


Za 017B wstawiasz sobie kolejne 4 znaki z tego ciągu.
Kwestia tego, żeby rozbić string co 4 znaki.

Funkcja na szybko:

  1. function convertString($string){
  2. $string = preg_replace('/([A-F0-9]{4})/', '&#x$1;', $string);
  3. return mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
  4. }


Ten post edytował kapslokk 2.09.2015, 11:04:37
Go to the top of the page
+Quote Post
KR2615
post 2.09.2015, 11:22:26
Post #3





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Super, dzięki smile.gif Jeszcze się tylko zastanawiam, jak nauczyć ten skrypt PHP odróżniać SMSy zakodowane w ten sposób od zwykłych SMSów.


--------------------
Go to the top of the page
+Quote Post
kapslokk
post 2.09.2015, 11:34:54
Post #4





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Smsy zakodowane będą posiadały tylko duże litery od A do F i cyfry. Może po tym?
Go to the top of the page
+Quote Post
KR2615
post 2.09.2015, 11:37:12
Post #5





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Mozna by przepuszczac przez niego wszystie SMSY. Zauwazylem, ze dla stringa "Zwykly tekst" zwraca po prostu "Zwykly tekst". Co innego dla stringa "DACAN Patryk: 505123456 " Jesli wlapie czteroznakowy ciag cyfr badz HEXów probuje go konwertowac.

Ten post edytował KR2615 2.09.2015, 11:42:00


--------------------
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:12