Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Tablica w funkcji pack
PAL MAL
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 13.09.2004

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


Witam,

Zwracam się z prośbą o podpowiedź jak umieścić dane z tablicy w funkcji pack biorąc pod uwagę, że każdy indeks będzie osobnym bajtem?

Przykład:

  1. $frame_pack = pack("C*", 10, 87, 13, $tablica, 33);


gdzie $tablica zawiera:

  1. $tablica = array(1, 2, 3, 4, 5);


Chcę osiągnąć żeby paczka miała 9 bajtów: 10, 87, 13, 1, 2, 3, 4, 5, 33.
Nie chcę wpisywać na sztywno bo tablica może być większa lub mniejsza...

Próbowałem zamienić dane w tablicy za pomocą:

  1. $tablica = array_map("chr", $tablica);


Próbowałem różnych sposobów ale niestety jakieś głupoty mi wychodzą, chodź de facto paczka ma 9 bajtów tylko dane się nie zgadzają...

Proszę o jakąś podpowiedź.

Pozdrawiam!

Ten post edytował PAL MAL 14.03.2015, 11:50:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
ctom
post
Post #2





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

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


sprawdź, ale powinno śmigać ...

Kod
$tablica = array(1,2,3,4,5);
$pack_args = array("C*",10, 87, 13, $tablica, 33);

$args = array();
array_map(function($r) use(&$args){
    if( !is_array($r) ) {
    array_push($args, $r);
    } else {
        array_map(function($t) use(&$args) {
            array_push($args, $t);
        }, $r);
    }
    
}, $pack_args);


$frame_pack = call_user_func_array("pack", $args);
Go to the top of the page
+Quote Post
PAL MAL
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 13.09.2004

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


Działa perfekcyjnie! Dziękuję bardzo!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:33