Hirdetés
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Milyen okostelefont vegyek?
- VoLTE/VoWiFi
- Honor Magic5 Pro - kamerák bűvöletében
- Xiaomi 15 - kicsi telefon nagy energiával
- Így spórolhat az Apple az iPhone 18 kijelzőin
- Realme GT Master Edition - mestermunka
- Apple iPhone 17 Pro Max – fennsík
- Bemutatkozott az Oppo kamerás csúcsmodellje
- Android alkalmazások - szoftver kibeszélő topik
Új hozzászólás Aktív témák
-
Inhouse
őstag
Jó, annyi, hogy alapból nem egészként szerepelt ez a változó, hanem 2 tizedessel (.00) és így nem igazán kellett megpótolja 0-kal, tehát vette az első 6-ot. Ez lett vagy 5 szám és egy pont, vagy 4 szám, egy pont és egy 0, amikor nem volt 6 jegyű az egész.
Az int() megoldotta...
008456->8456.0
Annyi érdekesség, hogy adott időpontban, másnap is ugyanaz a kulcs jön ki...
Van tegtnapi mentésem...
-
Inhouse
őstag
Ja, gyakorlatilag, alapból 2 tizedessel számol. Ha 6 jegyű az egész, akkor nem kell kiegészíteni, ezért veszi az első 6-ot, nincs gond. Mondjuk ha 5 jegyű, akkor se kell kiegészítenie a tizedesek miatt...de így a pont lesz a 6. karakter.
Már csak az a kérdés, hogy hallucináltam-e a pont nélküli, de eltolódott 0-t.
-
Inhouse
őstag
Na, a '.' hiba a legvégén keletkezett, még az r értéke is jó volt, viszont nálam az 'r % 1000000'-nek az egészrészét kell vennem, úgy jó. Na, majd még tesztelem, hogy ha kezdő 0 van, akkor is jó lesz-e így... Nem is értem, miért csinálja ezt néha a HB-s padl() függvény...
-
"Engem az zavar a hex2bin()-ben, hogy nem értem az eredményét, miért csak (látszólag?) azt a 2 értéket alakítja át?
00|00|00|00|03|73|f2|a7 -> s�"Ezt teljesen helyesen teszi
mert a webes felületek döntő többségben UTF-8 kódolással dolgoznak:
- az ASCII vezérlő karaktereket (0-31 / 00-1f) nem mutatják
- a szabványos ASCII karakterek (32-127 / 20-7f) megegyeznek
- emellett az UTF-8 szabvány nem egy single-byte codepage (mint a win1250 vagy az iso8859-2), ami azt jelenti, hogy egy karakter lehet tárolva 1, 2, 3, 4 byte-on is, de nincs minden kombinációra illeszthető karakterEmiatt:
- 00 és 03 nincs megjelenítve
- 73 --> 's'
- f2a7 --> f2 esetén a karakterhez 4 byte-ot vár, de ez itt nem teljesül, ezért itt egy úgynevezett replacement charactert helyez elA lényeg az, amit már korábban írtak, a képernyőn megjelenő forma semmit sem jelent...
-
ekkold
őstag
Bemásoltam korábban egy dekódoló függvényt, én is a netről szedtem. Teljesen jól működik, csak használni kell.
Azon kívül talán léteznek még ingyenes tárhely szolgáltatók, ahol php-t is lehet használni. Egy ilyen apphoz nagyon kevés hely is elegendő. Az ATW-n pl. most is lehet ingyen tárhelyet regisztrálni - mindjárt kipróbálom egy-e rajta... -
cinemazealot
addikt
"A pontok szóközöket helyettesítenek, csak a fórummotor kiszedi őket..."
Nem szóközök, hanem nullás bájtok, amiknek nincs (olvasható) karakteres megfelelője. És nem a fórum motor, hanem a HTML "szedi ki őket", valójában pedig csak összevonja a white space-eket.
A HTML alapú megjelenítés sok szempontból nem szerencsés ilyen esetben, de a hexadecimális formátum sokat tud ebben segíteni. Hasonló okból barátai a fejlesztőknek a hexa editorok. 
-
cinemazealot
addikt
"Ez a hex2bin() meg csak párat."
Ugye nem a képernyőről próbálod leolvasni hány bájtot gyárt a függvény?
Mondom, bármit is kapsz ennek kimenetéül, azt ne próbáld szövegként elolvasni!Egyébként rém egyszerű a működése, mert a függvény hexadecimális bemenetének és bináris kimenetének hossza (bájt- vagy ha úgy tetszik, karakterszáma) között egy 2-es osztó áll: beadsz neki n (páros) számú hexadecimális karaktert string formájában és kiad n/2 számú bájtot szintén string formájában. Amit csak akkor tudsz olvasni, ha mindegyik bájt értéke a 32...127 (hexadecimálisan 0x20...0x7f) tartományban van, ami jelen esetben nagy eséllyel nincs így.
-
Inhouse
őstag
Ja, korai volt az örömöm, a bin2hex() csak visszaalakítja a korábbi hexa alakba, a hex2bin() inverze (triviális, csak elsőre nem esett le), a hexáig jó vagyok HB-ban is. Csak ott az ennek megfelelőnek vélt függvény annyi karaktert gyárt, amennyi kijön a hexa értékből. Ez a hex2bin() meg csak párat. Gyanús, hogy ez így nem lesz jó...lehet, hogy 01... olvasható formátumban kéne valahogy megnézzem a kapott értéket, mindkét platformon...
-
cinemazealot
addikt
Még egyszer: a hex2bin() kimenete nem egy hétköznapi (olvasható) string, hanem egy (jelen pillanatban 8 karakter, azaz 8 bájt hosszú) 64 bites integer string-ként tárolva. Pusztán azért, mert így kényelmesebb vele dolgozni.
Ne próbáld megfejteni "00|00|00|00|03|73|f2|a7" bájtsorozat (string) szöveges jelentését, mert nincs neki olyan. Ez nem más, mint az 57930407 értékű egész szám big-endian ábrázolása, ami a 1737912210/30 matematikai művelet eredményeként született. Mert ha jól sejtem, tegnap 18:23:30-kor futtattad.Online szerintem ne akarj PHP-t futtatni, inkább telepíts fel egyet magadnak, futtasd a programot parancssorból és itt-ott állítsd meg, hogy "kiechózd" egyik-másik változót. Viszont kiechózni sem lehet mindent, pl. a bináris tartalom parancssorban is szarul mutatna. Ahhoz előbb érdemes beletenni a bináris tartalmat egy bin2hex()-be, csak hogy hexadecimálisan olvasható legyen.

Még egy gondolat a stringekhez: a PHP-ban minden bináris tartalom (pl. hang, kép, videó, Excel tábla, Word vagy PDF dokumentum) betölthető stringbe. Nyilvánvaló, hogy egy ilyet kiírni szövegként teljességgel értelmetlen volna, mert az csak egy bájtsor, aminek elemei bőven túlmutathatnak az ASCII kódtáblán.
Szerk.: Most melózom, de ha igény van rá, este leírom egy hsz-ben az egész program működését sorról-sorra.
-
cinemazealot
addikt
Szia Inhouse!
A hex2bin() pontosan azt teszi, amit a neve sugall, illetve amit a manual ír róla: egy bináris stringet hoz létre. Ennek azonban nem feltétele, hogy a string ember által olvasható is legyen. Ha megfigyeled, az eredménye csupán egy 64 bites (8 bájtos) "big-endian" integer, aminek alapja a 30 másodpercenkénti számláló, kiegészítve balról nulla karakterekkel (!). Mivel az alapja integer, amúgy sem lenne string formában olvasható, de nem is ez a cél, hanem hogy bekerüljön a h() függvénybe, ahol a jobbról nulla bájtokkal (!) kiegészített és aztán jól "meg-scramble-zött" kulcshoz hozzáfűzve ráeresztjük az SHA1-et... aztán mégegyszer egy másik pad bájttal.
Olvasd el a linkelt szabványt... illetve az abban hivatkozott RFC 4226 és RFC 2104 szabványokat, utóbbiban lesz jobban kifejtve ez a fenti eljárás.

Új hozzászólás Aktív témák
Hirdetés
- Gitáros topic
- Vezetékes FEJhallgatók
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Autós topik látogatók beszélgetős, offolós topikja
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Napelem
- Ubuntu Linux
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- További aktív témák...
- Bomba ár! Dell Latitude E6420 - i5-2GEN I 8GB I 250GB I DVDRW I HDMI I 14" HD I Cam I W10 I Gari!
- Dobozos Új Dell Xps 15 9530 i7 13620h 16gb ram 1tb ssd intel uhd graphics+ Intel Arc A370M
- Nemzetközi csomagküldés olcsón EU akár 2800 Ft-tól CsomagExpress
- 3440 x 1440 100Hz!!! 65W PD 34" CURVED 1800R Samsung C34H890WGR - 1 év garancia!
- Samsung Odyssey G7 S28BG702EP IPS Monitor! 3840x2160 / 144Hz / 1ms / FreeSync / G-Sync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



Örülök, ha segítettem.
mert a webes felületek döntő többségben UTF-8 kódolással dolgoznak:
Mondom, bármit is kapsz ennek kimenetéül, azt ne próbáld szövegként elolvasni!

