shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_write — Write data into shared memory block

Описание

int shmop_write ( int $shmid , string $data , int $offset )

shmop_write() will write a string into shared memory block.

Список параметров

shmid

The shared memory block identifier created by shmop_open()

data

A string to write into shared memory block

offset

Specifies where to start writing data inside the shared memory segment.

Возвращаемые значения

The size of the written data , or FALSE on failure.

Примеры

Пример #1 Writing to shared memory block

<?php
$shm_bytes_written 
shmop_write($shm_id$my_string0);
?>

This example will write data inside $my_string into shared memory block, $shm_bytes_written will contain the number of bytes written.

Смотрите также

Коментарии

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>';
2020-11-30 11:13:11
http://php5.kiev.ua/manual/ru/function.shmop-write.html
On thing you might want to do is replace an old string with a shorter one, or to clear out the string altogether.

To replace the string, you can zero-byte pad the string you are writing:

<?php
   
//    $shmid is from shmop_open()
   
$size 128;
   
$string 'something';

   
//    write
       
$string str_pad(string$size"\0");
       
shmop_write($shmid$string0);

   
//    read
       
print rtrim(shmop($shmid,0,0),,"\0");

   
//    clear
       
$string str_repeat("\0",$size);
       
shmop_write($shmid$string0);
?>
2022-12-07 09:55:36
http://php5.kiev.ua/manual/ru/function.shmop-write.html

    Поддержать сайт на родительском проекте КГБ