Shmop,是一個易於使用的功能集,允許PHP讀,寫,建立和刪除UNIX共享記憶體段。本文主要和大家分享shmop系列函數使用php共享記憶體實作方法,希望能幫助大家。
1、shmop 系列函数使用 <?php //使用shmop 系列函数 set_time_limit(0); $shm_key = ftok(__FILE__, 't'); $shm_id = shmop_open($shm_key, "c", 0655, 1024); $size = shmop_write($shm_id, "Hello world".PHP_EOL, 0); shmop_write($shm_id, 'I love you'.PHP_EOL, $size+1); echo $size.PHP_EOL; $data = shmop_read($shm_id, 0, 100); var_dump($data); shmop_delete($shm_id); shmop_close($shm_id); //Shared Memory Functions /** * shmop_open(int $key , string $flags , int $mode , int $size) * $key 共享内存的key * $flags 的值有以下几种 * a : 创建一个只读的共享内存区。 * c : 如果共享内存区已存在,则打开该共享内存区,并尝试读写。否则新建共享内存区 * w : 创建一个读写共享内存区 * n : 创建一个共享内存区,如果已存在,则返回失败 * * $mode 读写权限。如0755 0644 等 * $size 申请共享内存区的大小 */ /** * shmop_read( resource $shmid , int $start , int $count) * 将从共享内存块中读取数据 * $shmid 共享内存id,资源类型 * $start 从共享内存的那个字节开始读起 * $count 一次读取多少个字节。 * 如果count值小于发送的信息长度,则信息会被截断。 */ /** * shmop_write(resource $shmid , string $data , int $offset) * 将数据写入共享内存块 * $data 将要写入的数据 * $offset 从共享内存块的那个位置开始写入。 * 该函数的返回值是写入数据的长度。 */ /** * shmop_size(resource $shmid); * 返回当前共享内存块,已经使用的大小 */ /** * shmop_delete ( resource $shmid ) * 删除一个共享内存块的,删除引用关系 */ /** * shmop_close ( resource $shmid ) * 关闭共享内存块 * 要先使用shmop_delete 之后才能继续使用shmop_close */ 2、shm 系列函数使用 <?php //使用信号量扩展共享内存 $key = ftok(__FILE__, 'a'); $share_key = 1; //创建一个共享内存,大小为1024字节,权限为755 $shm_id = shm_attach($key, 1024, 0755); //将一个key=>value放进共享内存 $message1 = "I love Roverliang"; shm_put_var($shm_id, $share_key, $message1); //重复使用key ,前一个设置的值会被后一个设置的值覆盖掉。 $message2 = "I love Rover"; shm_put_var($shm_id, $share_key, $message2); //读取一个共享内存值 $read_message = shm_get_var($shm_id, $share_key); echo $read_message.PHP_EOL; //并不是取走了,而是读取 $read_message2 = shm_get_var($shm_id, $share_key); echo $read_message2.PHP_EOL; //判断共享内存中,某个值是否存在 $isexists = shm_has_var($shm_id, $share_key); var_dump($isexists); //删除一个值 shm_remove_var($shm_id, $share_key); //判断共享内存中,某个值是否存在 $isexists = shm_has_var($shm_id, $share_key); var_dump($isexists); //删除一个共享内存 shm_remove($shm_id); //关闭共享内存的连接 shm_detach($shm_id);
相關推薦:
以上是shmop系列函數使用php共享記憶體實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

本文给大家介绍在PHP中如何创建共享内存减少负载,这里大家要了解一个函数shmop,下面就跟着文章讲解来学习吧~

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境