ID:               5889
 Updated by:       [EMAIL PROTECTED]
 Reported By:      tomwk at audiogalaxy dot com
-Status:           Analyzed
+Status:           Wont fix
 Bug Type:         Feature/Change Request
 Operating System: Redhat Linux
 PHP Version:      4.0.1pl2
 New Comment:

This will not be implemented.


Previous Comments:
------------------------------------------------------------------------

[2000-08-01 10:22:25] [EMAIL PROTECTED]

Well, functions args work differently in perl and PHP. Maybe we need
some "array" type of pack modifier, because PHP does not convert
function arguments to array. Though, you can write a wrapper function
using func_get_args() and func_num_args() for this.

------------------------------------------------------------------------

[2000-08-01 09:51:18] tomwk at audiogalaxy dot com

I have an application that writes data across our network
to another program.  Most of the data consists of integer arrays.  I'm
currently doing this in a very simple manner,
using something like this:

for( $i = 0; $i < $numInts; $i++ ) {
  fwrite( $fd, pack( "N", $ints[ $i ] ) );
}

However, this results in a very large number of calls to 
fwrite, which is bad for performance.  I made the routine
about 3 times faster by doing something like this:

fwrite( $fd, pack( "N10" 
  $ints[ $i + 0 ],
  $ints[ $i + 1 ],
  $ints[ $i + 2 ], ///.. and so on, 

However, it would be really great if pack could take an array as one of
it's arguments.  I believe this is the way 
Perl behaves, but when I try:

$data = array( 10, 123 );
$buf = pack( "N*", $data );

$valArray = unpack( "N*", $buf );

while( list( $key, $val ) = each( $valArray ) ) {
    echo "$key -> $val\n";
}

the only output I get is:

1 -> 1




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=5889&edit=1

Reply via email to