shmop_read() reads and returns the whole memory segment's data. This is not useful if you're just working with strings. If you need to read a string from shared memory, call str_from_mem() on the result of shmop_read(). Similarly when writing strings to memory (instead of binary data), null terminate your strings with str_to_nts() before passing the value on to shmop_write().function str_to_nts($value) { return "$value\0";}function str_from_mem(&$value) { $i = strpos($value, "\0"); if ($i === false) { return $value; } $result = substr($value, 0, $i); return $result;}