PHP string to raw HEX

Programovacie jazyky, rady, poradňa...
Forsaken
King
King
Používateľov profilový obrázok
Príspevky: 1918
Registrovaný: 14 mar 2010, 0:39

PHP string to raw HEX

Príspevok od používateľa Forsaken »

ahoj, potrebujem pomoc lebo som lama.
tu som si vytvoril druhu temu, lebo v podstate ta prva bola o niecom inom... w/e

Kód: Vybrať všetko

function strToHex($string)
{
    $hex='';
    for ($i=0; $i < strlen($string); $i++)
    {
        $hex .= dechex(ord($string[$i]));
    }
    return $hex;
}
potrebujem $string = "00 11 12 13";
ulozit do nejakej premenej nazvem to "raw Data" premenej
kde sa nebude jednat o STRING ASCII, ale o raw data v HEX

je to mozne spravit nejako jednoducho? dechex ? - nebude to len opat string v ascii hex cisel ?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP string to raw HEX

Príspevok od používateľa audiotrack »

milujem témy, kde si dá niekto otázku a hneď aj odpoveď

//php nie je silne typový jazyk. Ak s tým budeš narábať ako s textom, bude to text. Ak nie, tak nebude. Takže poslednej otázke moc nerozumiem
Forsaken
King
King
Používateľov profilový obrázok
Príspevky: 1918
Registrovaný: 14 mar 2010, 0:39

Re: PHP string to raw HEX

Príspevok od používateľa Forsaken »

to je recnicka otazka, ktora ale potrebuje definitivnu odpoved :D

- takze este raz, existuje premena v ktorej sa data ulozia ako ciste-raw data a nie ako string ascii hodnot?
- staci string "prekonvertovat" ascii retazec funkciou dechex a dostanem raw Hex premenu ?,
audiotrack napísal://php nie je silne typový jazyk. Ak s tým budeš narábať ako s textom, bude to text. Ak nie, tak nebude. Takže poslednej otázke moc nerozumiem
ako sa da narabat s premennou ako nie s textom ?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP string to raw HEX

Príspevok od používateľa audiotrack »

dátový typ hex neexistuje, je to klasický integer len inak zapísaný (pridáva sa k nemu 0x na začiatok aby sa vedelo že ide o hex zápis). Ako sa da narábať s premennou inak ako s textom?

Kód: Vybrať všetko

$a = "12345"; //textová premenná
echo $a[3]; //s textom narábam ako s poľom, vypíšem 4. prvok
echo $a + 5; //s textom narábam ako s číslom, pripočítam číslo 5 a vypíše mi 12350
.
.
.
Forsaken
King
King
Používateľov profilový obrázok
Príspevky: 1918
Registrovaný: 14 mar 2010, 0:39

Re: PHP string to raw HEX

Príspevok od používateľa Forsaken »

dik za snahu ale na mna musis inak ist lebo :shock:

mam retazec
$retazec= "r 9 0"

r=0x72
9=0x39
0=0x30
CR=0x0D

tento retazec potrebujem "ulozit" / pouzit nie ako textovy retazec, ale ako retazec raw data v HEX, s tym ze na koniec musim pridat carriage return CR.
(nieco taketo $hexRetazec = (%h raw 72 39 30 0D);

cize co spravit s premenou $retazec, aby sa ulozila na pozadovany format?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP string to raw HEX

Príspevok od používateľa harrison314 »

pozri sa na funkcie hex2bin(), bin2hex(), pack(),
ale aj tak to bude len string, preto som ty vravel, ze PHP nato neni dobre
Forsaken
King
King
Používateľov profilový obrázok
Príspevky: 1918
Registrovaný: 14 mar 2010, 0:39

Re: PHP string to raw HEX

Príspevok od používateľa Forsaken »

dikz, ten pack sa mi pozdava :)
http://php.net/manual/en/function.pack.php

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

The resulting binary string will be 6 bytes long and contain the byte sequence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

to "nvc*" su argumenty alebo co to znamena?

n unsigned short (always 16 bit, big endian byte order)
v unsigned short (always 16 bit, little endian byte order)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP string to raw HEX

Príspevok od používateľa BX »

Neviem, či som úplne pochopil čo chceš a či vôbec chápem php, ale nedalo by sa to urobiť jednoducho "Cčkovsky"? Teda string prebehnem klasicky for cyklom a ascii hodnoty znakov (funkcia ord) si budem ukladať do pola. Tým mám v poli potrebné binárne dáta a môžem si s nimi robiť čo chcem.
V prípade potreby máš bitové operátory (s ktorými by si si tiež vedel vyskladať správne dáta, ale je to zbytočne zložité)
Či?
Forsaken
King
King
Používateľov profilový obrázok
Príspevky: 1918
Registrovaný: 14 mar 2010, 0:39

Re: PHP string to raw HEX

Príspevok od používateľa Forsaken »

pochopil si to spravne, ale ja to potrebujem online, a moje vedomosti z PHP ci C su dost :slap:

preto to skusam v cistom php.

este raz zopakujem

potrebujem v PHP odoslat ciste data, ktore budu reprezentovat HEX string.
(tj. ze musim nejakym sposobom zabalit(php pack) alebo pretypovat (???) string na raw - asi, tolko co si ja myslim o tom)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP string to raw HEX

Príspevok od používateľa BX »

No veď ja som písal o php. Ako chceš pracovať s binárnymi dátami, keď nevieš čo to je a ako sa s tým pracuje? To chceš pchať tomu robotu? Ak áno, tak ten žerie len toto, takže sa to nauč.

//autoeditácia príspevku (24 Okt 2012, 11:18)
Forsaken napísal:potrebujem v PHP odoslat ciste data, ktore budu reprezentovat HEX string.
(tj. ze musim nejakym sposobom zabalit(php pack) alebo pretypovat (???) string na raw - asi, tolko co si ja myslim o tom)
Na to ešte potrebuješ vedieť, aký formát to žerie (koľko bitov, ukončovacie znaky atd) A podľa toho sa zariadiť. Ten string v php je kto vie aké svinstvo.

Aj keď teda neviem, ako pracuje tá tvoja zázračná knižnica. Aj na tom záleží.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP string to raw HEX

Príspevok od používateľa harrison314 »

to co chces ty PHP prosto nema,
ked sa pozries na tu kniznicu tak zistis ze komunikuje cez CMD, takze tiez dokaze poslat iba string,
na toto potrebujes typovy jazyk a to este nehovorim o problemoch ake budes mat keby chces v PHP nejako tu komunikaciu synchronyzovat.

Na tvojom mieste by som siahol po C a Lua ( da sa naucit za 3 hodiny ), tym by si zachoval pohodlnost kodenia a sucasne by si nemal problem z binarnou komunikaciou, odozvou, threadingom,...
Alebo akykolvek typovy jazyk, ked aj Pascal
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP string to raw HEX

Príspevok od používateľa BX »

A ak to chceš online, môžeš z php-ka volať program v Cčku. Jemu pošleš len nejaký príkaz, on to všetko vykoná a pošle ti nejakú zrozumiteľnú odpoveď.
Forsaken
King
King
Používateľov profilový obrázok
Príspevky: 1918
Registrovaný: 14 mar 2010, 0:39

Re: PHP string to raw HEX

Príspevok od používateľa Forsaken »

ook dik chalani ja uz to dako premyslim.
Napísať odpoveď