PHP Doku:: Liest Daten aus einem gemeinsam genutzten Speicherbereich - function.shmop-read.html

Verlauf / Chronik / History: (25) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzErweiterungen zur ProzesskontrolleShared MemoryShared Memory Funktionenshmop_read

Ein Service von Reinhard Neidl - Webprogrammierung.

Shared Memory Funktionen

<<shmop_open

shmop_size>>

shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_readLiest Daten aus einem gemeinsam genutzten Speicherbereich

Beschreibung

string shmop_read ( int $shmid , int $start , int $count )

shmop_read() liest einen String aus einem gemeinsam genutzten Speicherblock.

Parameter-Liste

shmid

Der Bezeichner für den gemeinsamen Speicherblock, der von shmop_open() erzeugt wurde.

start

Offset, bei dem der Lesevorgang beginnen soll

count

Die Anzahl der zu lesenden Bytes

Rückgabewerte

Gibt entweder die gelesenen Daten zurück oder FALSE, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Aus dem gemeinsamen Speicher lesen

<?php
$shm_data 
shmop_read($shm_id050);
?>

In diesem Beispiel werden 50 Bytes aus dem gemeinsamen Speicherblock in die Variable $shm_data eingelesen.

Siehe auch

  • shmop_write() - Schreibt Daten in einen gemeinsamen Speicherblock


4 BenutzerBeiträge:
- Beiträge aktualisieren...
Milan Cvejic
18.02.2009 22:35
You should always serialize data written in shared memory.
And when you are reading data you should always unserialize.

<?php

$data
= 'test';
$shm_bytes_written = shmop_write($shm_id, serialize($data), 0);
$shm_data = unserialize(shmop_read($shm_id, 0, $shm_bytes_written));
?>
Craig Manley
7.01.2005 23:19
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;
}
slavapl at mailandnews dot com
2.05.2001 21:15
Also you can use the shmop_size() function to determine the block size.
macmaster at pobox dot com
30.03.2001 22:01
When i need to read the whole string at that shm pointer, setting the count parameter to zero (0) seems work for me.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)