![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 137 Pomógł: 0 Dołączył: 9.11.2004 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Mam następujące pytanie jak w php można w prosty sposób skrócić długość stringa ale tak by później móc odzyskać całą informacje?
Próbowałem z długiego stringa robić md5 i później odkodowywać ale md5 zwraca jeszcze za długi ciąć. Czy jest jakieś bardziej kodowanie gdzie można by skrócić tą długość? p.s. Czy znacie może namiary na jakiąś gotową funkcję która zamieni mi tablice na liczbe a inna funkcja z powrotem po podaniu ów liczby utworzy tablice? pozdro haryb |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił tak: aby maxymalnie zmniejszyć wielkość ciągu ustal jakie znaki mogą się w nim znajdować (np wiesz że nie powinno tam być dużych liter), a następnie wrzuć cały alfabet do tablicy
Kod $tablica=array('a','b','c'); $l=length($tablica); następnie ciąg rozbijasz na tablice: Kod $ciag=explode("",$ciag); i zapisujesz ciag w liczbie: Kod $suma=0; foreach($ciag as $znak){ $n=numer_znaku($tablica,$znak) $suma=$suma*$l+$n; } gdzie funkcja 'numer_znaku' zwraca liczbę mówiącą na którym miejscu w tabeli znajduje się znak Gwarantuje Ci że taki sposób kompresji jest najlepszy (pesymistycznie), lecz jego kodowanie i odkodowanie przy dłuższych ciągach może być czasochłonne |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 06:51 |