Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: unpack()
 
 автор: Andrey V.   (20.08.2005 в 11:24)
 
 

Здравствуйте!
Разбираю функции для работы с бинарными данными.
Функцию pack() разобрал, а вот каким образом использовать
функцию unpack() не понял. Объясните, если можно на примере,
как ее использовать и в каких случаях.
Спасибо

   
 
 автор: cheops   (20.08.2005 в 13:04)   письмо автору
 
   для: Andrey V.   (20.08.2005 в 11:24)
 

После того, как вы получаете результат работы функции pack()
<?php
  $bin 
pack("nvnv"0x57220x11486566);
?>

Вы можете распаковать полученную строку $bin при помощи функции unpack()
<?php
  $arr 
unpack("nvnv"$bin);
?>

   
 
 автор: Andrey V.   (20.08.2005 в 16:06)   письмо автору
 
   для: cheops   (20.08.2005 в 13:04)
 

Именно так я и делал. Потом вывел на экран резульатат. Он оказался таковым: "Array". Вот я и засомневался. Таким он и должен быть?
Спасибо

   
 
 автор: Bronepoz[)   (20.08.2005 в 16:10)   письмо автору
 
   для: Andrey V.   (20.08.2005 в 16:06)
 

да, таким чтобы просмотреть содержимое массива восползуюся кодом:


foreach($arr as $val)
  {
  echo $val;
  }

   
 
 автор: Andrey V.   (20.08.2005 в 18:14)   письмо автору
 
   для: Bronepoz[)   (20.08.2005 в 16:10)
 

Вот какой получился результат:
22306
Почему именно такой, на основания чего.
Спасибо

   
 
 автор: cheops   (20.08.2005 в 22:42)   письмо автору
 
   для: Andrey V.   (20.08.2005 в 18:14)
 

Хм... вообще unpack() пример достаточно хитрой запутанной функции, вот как её можно использовать
<?php 
  $bin 
pack("nnnn"0x57220x11486566); 
  
$arr bin2hex($bin);
  echo 
$arr;
  
$arr unpack("n4chars"$bin); 
  echo 
"<pre>";
  
print_r($arr);
  echo 
"</pre>";
?>

При этом chars определяет название ключа массива. Для вышеприведёного примера unpack() выглядит следующим образом
<?php 
  $bin 
pack("vnvn"0x57220x11486566); 
  
$arr bin2hex($bin);
  echo 
$arr;
  
$arr unpack("v1chars/n1www/v1w/n1ww"$bin); 
  echo 
"<pre>";
  
print_r($arr);
  echo 
"</pre>";
?>

Оказывается имена ключей не должны совпадать иначе они не выводятся.

   
 
 автор: Andrey V.   (21.08.2005 в 01:08)   письмо автору
 
   для: cheops   (20.08.2005 в 22:42)
 

Спасибо, разобрался.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования