| 
	
 | 
 Posted by Bint on 10/17/07 20:25 
Yeah, I guess I'm trying to do something low-level with this high-level  
lanugage.  I'm new to PHP so I'm trying to figure out how these fancy  
keyword-based arrays work with old-school byte arrays. 
 
I'm sending images wirelessly to a php script.  The image, originally a grid  
of pixels, each 16-bits deep, is run-length-encoded into a smaller C array  
of unsigned shorts (16 bit words).  That C array is base64 encoded into an  
ASCII string so that I can send it via HTTP POST command to a PHP script. 
 
The PHP script sees my base64 encoded array as a variable, which I can  
easily base64 decode into a php "array".  But it is proving trickier to  
access my pixel values, because now the array is not a C array, but a PHP  
one.  If I look at the value of array[0], then I don't get the number that  
was in array[0] before I sent it. 
 
I can work around it, by accessing each byte of the PHP array: 
 
$myoriginalarray[0] = ord($phparray[0]) + ord($phparray[1]) << 8; 
 
But that is complicated and I just thought there might be some simpler way  
of telling PHP "hey, I have an array of unsigned shorts here". 
Maybe not. 
 
B 
 
 
 
 
 
 
"Jerry Stuckle" <jstucklex@attglobal.net> wrote in message  
news:D_SdneeS0bxw8YvanZ2dnUVZ_qHinZ2d@comcast.com... 
> Bint wrote: 
>> I have an array whose elements I'm accessing, like array[0], array[1],  
>> etc. 
>> However, the data is meant to be 16-bit words, not bytes.  I'm getting  
>> byte values right now.  Is there 
>> any way I can tell php that an array is composed of words and not bytes? 
>> 
>> Thanks 
>> B 
>> 
>> 
>> 
> 
> Not really.  PHP is not meant for low-level bit manipulation.  And you  
> can't really control the size of the word - it can differ between 32 and  
> 64 bit architectures, for instance. 
> 
> What are you string in those words, anyway? 
> 
> --  
> ================== 
> Remove the "x" from my email address 
> Jerry Stuckle 
> JDS Computer Training Corp. 
> jstucklex@attglobal.net 
> ================== 
>
 
[Back to original message] 
 |