2009-05-08 11 views

Odpowiedz

4

myślę, że proszą o równowartości Perl opakowanie/funkcji rozpakować. Jeśli tak jest, proponuję spojrzeć na PHP opakowanie/funkcji rozpakować:

+0

Dokładnie tego szukałem. –

1

Nie ma czegoś takiego jak binarna tablica w PHP. Wszystkie funkcje wymagające strumieni bajtowych działają na łańcuchach. Co dokładnie chcesz robić?

1

Jeśli próbujesz uzyskać dostęp do określonej części ciągu znaków, możesz traktować ją jak tablicę bez zmian.

$foo = 'bar'; 
echo $foo[0]; 

wyjściowa: b

+2

dla tego rodzaju dostępu strun, wierzę, kręcone notacja klamra jest korzystne (w przeciwnym razie istnieje ryzyko mylące piekło nikogo innego zachowując swój kod). Na przykład: $ foo {0} – EvanK

+1

O ile się nie mylę, notacja Curly dla tego jest przestarzała w PHP 6 – McAden

+1

Ah, tutaj jest: http://us.php.net/language.types.string The "Uwaga" pod nagłówkiem - "Dostęp do ciągów i modyfikacja według znaków" – McAden

1

Powiedzmy, że chcesz przekonwertować $ Stringa = "Hello" na binarny .

Najpierw weź pierwszą literę z funkcją ord(). To da ci wartość ASCII znaku dziesiętnego. W tym przypadku jest to 72.

Teraz przekonwertuj go na plik binarny za pomocą funkcji dec2bin(). Następnie wykonaj następną funkcję. Możesz dowiedzieć się, jak działają te funkcje pod adresem http://www.php.net.

ani używać tego kawałka kodu:

<?php 
    // Call the function like this: asc2bin("text to convert"); 
    function asc2bin($string) 
    { 
     $result = ''; 
     $len = strlen($string); 
     for ($i = 0; $i < $len; $i++) 
     { 
      $result .= sprintf("%08b", ord($string{$i})); 
     } 
     return $result; 
    } 

    // If you want to test it remove the comments 
    //$test=asc2bin("Hello world"); 
    //echo "Hello world ascii2bin conversion =".$test."<br/>"; 
    //call the function like this: bin2ascii($variableWhoHoldsTheBinary) 
    function bin2ascii($bin) 
    { 
     $result = ''; 
     $len = strlen($bin); 
     for ($i = 0; $i < $len; $i += 8) 
     { 
      $result .= chr(bindec(substr($bin, $i, 8))); 
     } 
     return $result; 
    } 
    // If you want to test it remove the comments 
    //$backAgain=bin2ascii($test); 
    //echo "Back again with bin2ascii() =".$backAgain; 
?>