I guess pack-unpack are the handy functions for encoding/decoding data as/from a binary string for shmop_write/shmop_read. Example:$format='LLLLSSCCCC'; //data format for pack$key=1; if( !($shmid=shmop_open($key,'n',0660,30)) ) die('shmop_open failed.'); //my data to encode:$hd=array('ALIVE1'=>1,'ALIVE2'=>2,'ALIVE3'=>3,'ALIVE4'=>4, 'CRTPTR'=>5,'CRTSEQ'=>6, 'CTW'=>7,'LOCK'=>8,'PLAY'=>9,'MISS'=>10);$tmp=pack( $format, $hd['ALIVE1'],$hd['ALIVE2'],$hd['ALIVE3'],$hd['ALIVE4'], $hd['CRTPTR'],$hd['CRTSEQ'],$hd['CTW'],$hd['LOCK'],$hd['PLAY'],$hd['MISS'] );if( ($w=shmop_write($shmid,$tmp,0))!=24 ) die('write error $w='.$w);And reading from some other process:$key=1; if( !($shmid=shmop_open($key,'w',0,0)) ) die('shmop_open failed.'); $formatR='L4ALIVE/SCRTPTR/SCRTSEQ/CCTW/CLOCK/CPLAY/CMISS'; //data format for unpack$hd=unpack( $formatR, shmop_read( $shmid,0,24) );echo'hd:<pre>';print_r($hd);echo'</pre>';