EPIC4 Manual


hash_32bit()

Miscellaneous

hash_32bit(text)

Zamienia (koduje) znaki w texcie na sumę bitów. Niestety jest w stanie zakodować wył±cznie kilkana¶cie pierwszych znaków. Ma też innego fajnego buga :-) Kodowanie przebiega tylko w jedn± strone i nie da się tego już rozkodować, ale za to jest bardzo szybkie.



@ :test = hash_32bit(#qqq)

$test to '8570'


$hash_32bit() jest bardzo pomcne przy budowaniu różnego rodzaju cache`ów. Np. chcemy mieć informacje dotyczące paru odsób na paru kanałach: musimy zatem zrobić sobie kilka zmiennych dzięki którym łatwo będzie można odróżnić poszczególne osoby na konkretnych kanałach.


Załóżmy, że mamy nicki 'Pikachu, 'A-psik' i '[plonk]' i chcemy zaznaczyć, ze mają na jakiś tam kanałach jakieś prawa.

@ cache[$hash_32bit(#blah)][$hash_32bit(Pikachu)] = 1
@ cache[$hash_32bit(#blah)][$hash_32bit(A-psik)] = 1
@ cache[$hash_32bit(#pokemon)][$hash_32bit([plonk])] = 1

Dlaczego potrzemujemy tu $hash_32bit()? Ponieważ wynika to z ograniczeń co do nazw zmiennych -- nie może być w nazwie zmiennej żadnych znaków '#' (hash), '[ ]' (nawiasy kwadratowe - gdyż będzie to traktowane jako nowy wymiar struktury) oraz np. znaków '-' (minus). Dlatego wyrażenia mogące zawirać takie znaki należy jakoś zakodować.

Zobacz także: $crypt(), $encode(), $decode(), $urlencode()




Lista Funkcji Home Następny Paragraf