note 80354 added to function.shm-attach
| From: | hetii at poczta dot onet dot pl | Date: | Fri, 11 Jan 2008 13:18:08 +0000 |
| Subject: | note 80354 added to function.shm-attach | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-135027@lists.php.net to get a copy of this message | ||
Hi :)
I write small class for build bright message between my application.
<?
class Bright_Message
{
var $bright;
var $SHM_KEY;
var $my_pid;
function Bright_Message($SHM_KEY=null)
{
$this->my_pid = getmypid();//Get own pid
if (is_null($SHM_KEY)) $this->SHM_KEY = '123123123';
$this->bright = shm_attach($this->SHM_KEY, 1024, 0666);
$this->one_instance();
}
function get_msg($id,$remove=true)
{
if(@$msg=shm_get_var($this->bright,$id))
{
if ($remove) @shm_remove_var($this->bright,$id);
return $msg;
} else return false;
}
function snd_msg($id,$msg)
{
@shm_put_var($this->bright,$id,$msg);
return true;
}
function one_instance()
{
$SHM_PID = $this->get_msg(1,false);
if((strpos(exec('ps p'.$SHM_PID),$_SERVER['SCRIPT_FILENAME']))
=== false)
$this->snd_msg(1,$this->my_pid); else
{
echo "This program exists on pid: $SHM_PID\r\n\r\n";
exit;
}
}
}
?>
send.php:
<?
include "bridge_message.class.php";
$shm = new Bright_Message();
$shm->snd_msg(2,'this is my simple message');
?>
receive.php:
<?
include "bridge_message.class.php";
$shm = new Bright_Message();
$msg = get_msg(2);
echo print_r($msg,1);
?>
----
Server IP: 82.177.164.100
Probable Submitter: 89.171.196.34
----
Manual Page -- http://www.php.net/manual/en/function.shm-attach.php
Edit -- https://master.php.net/note/edit/80354
Del: integrated -- https://master.php.net/note/delete/80354/integrated
Del: useless -- https://master.php.net/note/delete/80354/useless
Del: bad code -- https://master.php.net/note/delete/80354/bad+code
Del: spam -- https://master.php.net/note/delete/80354/spam
Del: non-english -- https://master.php.net/note/delete/80354/non-english
Del: in docs -- https://master.php.net/note/delete/80354/in+docs
Del: other reasons-- https://master.php.net/note/delete/80354
Reject -- https://master.php.net/note/reject/80354
Search -- https://master.php.net/manage/user-notes.php