PHP词库替换
发布时间:January 12, 2014 // 分类:PHP // No Comments
<?php
$start = microtime ( true );
function convert($size)
{
$unit=array('b','kb','mb','gb','tb','pb');
return @round($size/pow(1024,($i=floor(log($size,1024)))),2).$unit[$i];
}
function strtr_words($str)
{
$words=array();
$content = file_get_contents('t.txt');
$content = preg_split('/\r\n/', $content, -1, PREG_SPLIT_NO_EMPTY); //分割字符串为数组
foreach($content as $key => $value)
{
//if ($key != '')
if (!empty($key))
{
$str_data = explode(',', $value); //分割同义词为k-v数组
$str = str_replace($str_data[0], $str_data[1] , $str);
//$words+=array("$str_data[0]"=>"$str_data[1]");
}
}
return $str;
//return strtr($str,$words);
}
echo strtr_words('村庄,一眼望不到边际')."\n";
echo convert(memory_get_usage(true))."\n";
$end = microtime ( true );
echo "脚本执行时间".($end - $start)."\n";
?>
14.12.22更新:
此方法词库太大时效率很差,可以将词库以key->vale方式加载到内存,文章分词遍历再替换。
使用Gearman搭建分布式任务分发平台
发布时间:January 9, 2014 // 分类:消息队列 // No Comments
使用yum直接安装:
yum install gearmand
安装PHP扩展:
yum install libgearman re2c
wget http://pecl.php.net/get/gearman-1.1.2.tgz
tar zxvf gearman-1.1.2.tgz
cd gearman-1.1.2
phpize
./configure
make && make install
echo "extension=gearman.so" >> /etc/php.ini
启动任务分发进程:
gearmand -d --keepalive --libtokyocabinet-file /tmp/gearmand.tch
PHP客户端,提交任务:
<?php
$client= new GearmanClient();
$client->addServer("127.0.0.1", 4730);
//发送任务到Job,处理函数和数据
//echo $client->do("reverse", "Hello World!");
echo $client->doBackground("reverse", "Hello World!");
?>
PHP执行端:
<?php
$worker= new GearmanWorker();
$worker->addServer("127.0.0.1", 4730);
//处理接收到数据的回调函数
$worker->addFunction("reverse", "reverse_function");
while ($worker->work());
function reverse_function($job)
{
for($i = 0; $i < 10; $i++){
sleep(1);
echo "{$i}\n";
}
return $job->workload();
}
?>
PHP进程间通信System V信号量
发布时间:January 9, 2014 // 分类:PHP // No Comments
<?php
$key = ftok(__FILE__, 's');
// 同时最多只能有一个进程进入临界区
$sem_id = sem_get($key, 1);
echo "This is a room,can only stay one people!\n\r";
// 派生子进程
$pid = pcntl_fork();
if ($pid == -1) {
exit('fork failed!');
} else if ($pid > 0) {
$name = 'parent';
} else {
$name = 'child';
}
echo "{$name} want to enter the room \n";
sem_acquire($sem_id);
// 原子操作开始
echo "{$name} in the room , other people can't enter!\n";
sleep(3);
echo "{$name} leave the room\n";
// 原子操作结束
sem_release($sem_id);
if ($pid > 0) {
pcntl_waitpid($pid, $status);
sem_remove($sem_id);//移除信号量
}
?>
PHP进程间通信System V共享内存
发布时间:January 9, 2014 // 分类:PHP // No Comments
Yum安装的PHP需安装扩展包php-process:
<?php
$shm_key = intval(bin2hex('node'), '16');
$memsize = 120;
$shm_h = shm_attach($shm_key, $memsize, 0644);
$var_key = intval(bin2hex('key'), '16');
$var_value = 'hello';
shm_put_var($shm_h, $var_key, $var_value);
echo shm_get_var($shm_h, $var_key);
shm_remove_var($shm_h, $var_key);
shm_detach($shm_h);
?>
分类
- Apache (13)
- Nginx (45)
- PHP (86)
- IIS (8)
- Mail (17)
- DNS (16)
- Cacti (14)
- Squid (5)
- Nagios (4)
- Puppet (7)
- CentOS (13)
- Iptables (23)
- RADIUS (3)
- OpenWrt (41)
- DD-WRT (1)
- VMware (9)
- 网站程序 (2)
- 备份存储 (11)
- 常用软件 (20)
- 日记分析 (10)
- Linux基础 (18)
- 欧诺代理 (0)
- Linux服务 (18)
- 系统监控 (4)
- 流量监控 (7)
- 虚拟化 (28)
- 伪静态 (2)
- LVM (3)
- Shell (18)
- 高可用 (2)
- 数据库 (16)
- FreeBSD (3)
- 网络安全 (25)
- Windows (35)
- 网络工具 (22)
- 控制面板 (3)
- 系统调优 (10)
- Cisco (3)
- VPN (6)
- ROS (20)
- Vim (14)
- KMS (4)
- PXE (2)
- Mac (1)
- Git (1)
- PE (1)
- LNS (2)
- Xshell (7)
- Firefox (13)
- Cygwin (4)
- OpenSSL (9)
- Sandboxie (3)
- StrokesPlus (1)
- AutoHotKey (4)
- Total Commander (3)
- WordPress (3)
- iMacros (6)
- Typecho (2)
- Ollydbg (1)
- Photoshop (1)
- 正则 (3)
- Debian (3)
- Python (8)
- NoSQL (6)
- 消息队列 (4)
- JS (7)
- Tmux (3)
- GO (7)
- HHVM (2)
- 算法 (1)
- Docker (2)
- PT (15)
- N1 (16)
- K2P (6)
- LUKS (4)
最新文章
- debian12下initramfs-tools配置ip子网掩码255.255.255.255/32失败解决
- iPhone查看屏幕供应商
- 光猫拨号ImmortalWrt/OpenWRT路由获取ipv6遇到的问题
- php-fpm错误error_log日志配置
- debian-12/bookworm安装mariadb10.3和mysql5.6
- smokeping主从配置及遇到的问题
- openwrt/linux使用tcpdump/nflog ulogd记录iptables日志
- tmux bash shell自动保存history
- ImmortalWrt/OpenWRT为guest wifi网络配置ipv6 nat6
- PVE更新upgrade遇到The following packages have been kept back
最近回复
- opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
- liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
- 海运: 不好意思,没有。
- zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
- 海运: 恩山有很多。
- swsend: 大佬可以分享一下固件吗,谢谢。
- Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
- 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
- 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
- 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
归档
- February 2025
- August 2024
- May 2024
- February 2024
- January 2024
- December 2023
- November 2023
- October 2023
- September 2023
- August 2023
- May 2023
- April 2023
- February 2023
- January 2023
- December 2022
- September 2022
- July 2022
- April 2022
- March 2022
- February 2022
- January 2022
- December 2021
- November 2021
- April 2021
- March 2021
- February 2021
- January 2021
- December 2020
- November 2020
- October 2020
- September 2020
- July 2020
- May 2020
- April 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- July 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- August 2018
- July 2018
- June 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- October 2017
- September 2017
- August 2017
- July 2017
- April 2017
- March 2017
- February 2017
- January 2017
- December 2016
- November 2016
- July 2016
- June 2016
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- October 2011
- September 2011
- August 2011
- July 2011