php实现简明英汉词典

Arduino+HC-05+App Inventor:手机蓝牙温湿度计搭建实战 蓝牙串口通信是物联网短距离数据传输的重要方式,它将物理世界的数据通过无线模块送达智能终端。在嵌入式开发中,传感器采集模拟或数字信号,经单片机处理后通过串口协议发送,再由蓝牙模块完成无线透传,手机端则负责解析与展示。理解串口波特率、数据帧格式和缓冲区处理是构建稳定链路的关键。这一技术在环境监测、智能家居、教学实验等场景中应用广泛,开发者可快速搭建低成本原型,实现远程数据可视化。本文基于Arduino开发板、DHT11传感器和HC-05模块,结合App Inventor图形化编程,详细演示如何构建一条完整的蓝牙 阅读详情

通过读取txt格式的词库,写入memcache缓存。比较简单,基本不存在分词的问题:

前段如下:


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function openWindow(newWindow)
{
	window.open(newWindow, "՚Пөѯ","height=460px, width=740px, top=100px; left=350px, toolbal=no, menubar=no, scrollbars=no, resizeable=no, location=no, status=no");
}

window.onload=openWindow("view.php");
</script>
</head>

<body>
</body>
</html>

弹出的窗口如下:


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<script type="text/javascript">

function getXMLHttpRequest()
{
	var xmlhttp=null;
	if(window.ActiveXObject)
	{
		xmlhttp = new ActiveXObject("Microsoft.XMLHttp");
	}
	else
	{
		xmlhttp=new XMLHttpRequest();
	}
	return xmlhttp;
}

function query()
{
	var url="/ciba/process.php";
	var data="?enword="+$('enWord').value+"&rand="+Math.random();	
	var en=$('enWord').value;
	$('enWord').value="";
	xmlhttp=getXMLHttpRequest();
	 if (xmlhttp)
	 {
		
		xmlhttp.open("get", url+data,true);
		
		
		 xmlhttp.onreadystatechange=function()
		{
			//window.alert(xmlhttp.readyState);
			if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
				var res=xmlhttp.responseText;
				//res=eval("("+res+")");
				//window.alert(res);
				$("chWord").innerHTML= en+": "+res;   
			}
		} 
		xmlhttp.send(null); 
	 }
}
function sendQuery(event)
{
	if(event.keyCode==13)
	{
		query();
		return false;
	}
}
function clearContent()
{
	$("enWord").value="";
	return false;
}
function $(id)
{
	return document.getElementById(id);
}
</script>

<style rel="stylesheet" type="text/css">
#enWord{border:1px solid blue;
		margin-top:20px;
		}
#sendButton{position:relative;
			bottom:12px;}
#chWord{position:relative;
		left:10px;
		top:50px;
		font-size:20px;
		color:red;}
</style>
<head>

<body>

<img src="logo.jpg" /><br />
<textarea  id="enWord" cols="90" rows="2" onkeydown="sendQuery(event);" onclick="clearContent();">
请输入词条
</textarea>
<input type="button" id="sendButton" value="查询" onclick="query();" /><br />

<div id="chWord"><div>
</body>
</html>

【控制器部分】


<?php
header("content-type: plain/text; charset=utf-8");
require_once "storeWord.php";
if(!empty($_GET['enword']))
{
	$en=$_GET['enword'];
	$mem=new MemStore();
	$ch=$mem->getWord($en);
	$en=$mem->filterWord($en);
	
	$res="<res><en>$en</en><ch>$ch</ch></res>";
	file_put_contents('aword.txt', $res."\r\n",FILE_APPEND);
	//ob_clean();
	echo $ch;
}
else
{
	file_put_contents('aword.txt', "receive NON data \r\n",FILE_APPEND);
}

【后台】

<?php   

require_once('parseWord.php');
class MemStore
{
	private $mem=null;
	private $pat='#^[a-zA-Z]+\b#i';
	
	public function __construct()
	{
		$this->mem=new Memcache();
		$this->mem->connect("127.0.0.1", 11211) or die("connect memcached failed!!!<br />");
	}
	public function __destruct()
	{
		$this->mem->close();
	}
	public function addWord($dic)
	{
		$word=new Word($dic);
		$word->readWord();
		$result=$word->getWord();
		//echo count($result)."字符<br />";
		//exit();
		foreach($result as $en => $ch)
		{
			$this->mem->add($en, $ch, MEMCACHE_COMPRESSED, time()+10*24*3600) or die("添加词条失败". __LINE__ ."<br />");
		}
	}
	
	public function setWord($en,$ch)
	{
		//控制器判断输入是否合法
		$en=$this->filterWord($en);
		$en=$this->mem->get($en) or die("找不到词条 $en");
		$this->mem->set($en, $ch, MEMCACHE_COMPRESSED, time()+31*24*3600) or die("添加词条$en失败");
		
	}
	
	public function getWord($en)
	{
		//控制器判断输入是否合法
		$en=$this->filterWord($en);
		$ch=$this->mem->get($en) or die("找不到词条 $en");
		return $ch;
	}
	
	public function replaceWord($en,$ch)
	{
		//控制器判断输入是否合法
		$en=$this->filterWord($en);
		$en=$this->mem->get($en) or die("找不到词条 $en");
		$this->mem->replace($en, $ch, MEMCACHE_COMPRESSED, time()+31*24*3600) or die("替换词条$en失败");	
	}
	
	public function deleteWord($en)
	{
		//控制器判断输入是否合法
		$en=$this->filterWord($en);
		$this->mem->delete($en,0) or die("删除词条$en失败");
	}
	
	//过滤掉中文,包括空格的词组,长度大于20的词条
	public function filterWord($en)
{
		$en=trim($en);


			if(preg_match('#[\x{4e00}-\x{9fa5},\)\.\(]+#u', $en))
			{
				//过滤掉中文,同时提取其中的英文字符
				 if(preg_match('#\b[a-z]+\b#i', $en, $res))
				{
					if(strlen($res[0])>20)
					{
						//echo "字符过长<br />";
						return strtolower(substr($res[0], 0,20));
					}
					return strtolower($res[0]);
				}
				else
				{
					return " ";
				}
				
			}
		
			else if(preg_match('#\s+#', $en))
			{
					//$en=explode(' ', $en);
				//echo "含有空格<br />";
				$res=null;
				if(preg_match('#[a-z]+#i', $en, $res))
				{
					if(strlen($res[0])>20)
					{
						//echo "字符过长<br />";
						return strtolower(substr($res[0], 0,20));
					}
					return strtolower($res[0]);
				}
			}
			else if(preg_match('#[—_\+\?\*\^\$\#\%\&\/\\,\.!@=\`\'\"\"""]#',$en, $res))
			{
				//
				//echo '含有非法字符<br />';
				if(preg_match('#[a-z]+#i', $en, $res))
				{
					if(strlen($res[0])>20)
					{
						//echo "字符过长<br />";
						return strtolower(substr($res[0], 0,20));
					}
					return strtolower($res[0]);
				}
			}
	
			else if(strlen($en)>20)
			{
				//echo "字符过长<br />";
				return strtolower(substr($en, 0,20));
			}
			else 
			{
				return $en;
			}
		
}
	
	public function flushAll()
	{
		$this->mem->flush();
	}
	
	public function getTime()
	{
		if (function_exists("micro_time"))
		{
			list($usec, $sec) = explode(" ", microtime());
			return ((float)$usec + (float)$sec);
		}
		else
		{
			return time();
		}
	}
}

//$mem=new MemStore();
//$mem->addWord('ciba.txt');
//$mem->flushAll();
//$mem->replaceWord('abandon', 100000000);
//$mem->deleteWord('abandon');
//echo $mem->getWord('_*&^%abandon^%$#');
//echo "ok"; 

?>

【解析库】

<?php 	
class Word
{
	private $query_en='#\w+\b#i';
	private  $query_ch='#[\x{4e00}-\x{9fa5}][\x{4e00}-\x{9fa5},\)\.\( \w]*#u';
	private $arr_word=array();
	private  $recycle_num=100;
	private  $fp=null;
	
	public function __construct($fileName)
	{
		$this->fp=fopen($fileName,'r') or die('打开ciba失败');
	}
	
	
	public function readWord()
	{
			while(!feof($this->fp))
			{
				$word=fgets($this->fp);
				$word=trim($word);
				if($word=='') continue;
				
				$en=$this->parseEn($word);
				$ch=$this->parseCh($word);
				$this->arr_word["$en"]=$ch;
				
				/* $this->recycle_num--;
				if($this->recycle_num==0) return; */
			
				
			}
	}
	public function parseEn(&$word)
	{
		if(preg_match($this->query_en, $word, $en))
		{
			return $en[0];
		}
		else
		{
			echo "match english word failed<br />";
		}
	}
	public function parseCh(&$word)
	{
		if(preg_match($this->query_ch, $word, $ch))
		{
			return $ch[0];
		}
		else
		{
			echo "match chinese failed<br />";
		}
	}
	
	public  function getWord()
	{
		return $this->arr_word;
	}
	
	public function __destruct()
	{
		fclose($this->fp);
	}
}

//$word=new Word('ciba.txt');
//$word->readWord();
//echo "<pre>";
//print_r($word->getWord());
//echo "</pre>";  */

?>


goldendict_mdx_简明英汉词典增强版下载 完美适配goldendict词典,mdx词典,英汉字典,汉英字典。 立即下载

相关推荐

简明英汉词典数据库

简明英汉词典的SQLite数据库,适合开发手机词典时使用,包含146456个单词及词组。

PHP实现牛津英汉词典

《-----------------------------前段代码---------------------------------》

Free_Program_1314的专栏 3223

简明英汉词典词库完全版!430万词条!!!最全词典整合收录!全网最多!俚语、短语、专业、新词全部收录!完美支持GoldenDic

简明英汉词典词库完全版!430万词条!!!最全词典整合收录!全网最多!俚语、短语、专业、新词全部收录!完美支持GoldenDict!一部在手,天下我有!

PHP中文转拼音,基于词库的中文转拼音

技术来源于GitHub  立即查看

开心壹佰Blog,联系QQ:670809380 1866

英文字典,php,mysql可用[无乱码]

英文字典,php,mysql可用[无乱码]

php实现牛津词典

php实现的牛津词典,本地词库已经上传

英汉词典mysql_php+mysql实现英汉查询词典的功能

create database worddb;2.创建表create table words(id int auto_increment primary key,en_word varchar(128) not null,ch_word varchar(256) not null);3.插入数据(只是举个例子,不必太计较单词是不是这个意思,英语很渣,又懒得查)insert into words(e...

weixin_33168127的博客 359

Qoder + ADB Supabase :5分钟GET超火AI手办生图APP

本文介绍如何利用Qoder、阿里云 ADB Supabase 和通义千问图像编辑模型,快速构建AI手办生图Flutter应用。无需传统后端,通过AI生成代码、BaaS服务与边缘函数调用,实现从原型到上线的敏捷开发,全流程轻量高效,助力Vibe Coding落地实践。

数据库技术 931

词典php,小词典(php)

查询前台页面(enword.php) 英汉词典请输入英文:2.编写数据库操作类(ewTool.class.php) conn=mysql_connect($this->host,$this->user,$this->password) or die("链接失败"); mysql_select_db($this->bd); mysql_quer...

weixin_39726971的博客 142

S32K144 LPI2C Master/Slave模式配置与多设备通信实战

本文详细介绍了NXP S32K144微控制器中LPI2C模块的主从模式配置与多设备通信实战。内容涵盖硬件连接、引脚配置、主从模式深度设置、中断/DMA应用,并通过AT24C16 EEPROM、SHT30传感器等实例,解析了多设备通信中的地址切换、时序控制及常见问题排查技巧,帮助开发者高效实现基于LPI2C的稳定通信。

weixin_29158047的博客 269

Rocky Linux 9 远程桌面配置全攻略:从零搭建XRDP服务(含防火墙设置)

本文提供了在Rocky Linux 9上从零开始配置XRDP远程桌面服务的完整指南。详细介绍了系统准备、XRDP服务安装、防火墙与SELinux安全设置、多用户性能优化以及多平台客户端连接实测。重点解决了使用Windows远程桌面协议(RDP)连接Rocky Linux时常见的配置难点与安全问题,帮助用户获得稳定高效的图形化远程访问体验。

vodka的博客 649

PHP数据库操作综合实战:从基础CRUD、SqlTool封装到在线词典开发

本文介绍了PHP操作MySQL数据库的三种方式(mysql、mysqli、PDO扩展库),重点演示了使用mysql扩展库进行数据库操作。内容包括:1)基本的增删改查操作示例;2)将数据库操作封装成SqlTool工具类以提高代码复用性;3)解决中文插入失败问题的编码处理方法;4)实现显示表结构的函数;5)开发在线英汉词典案例,包含表单提交处理、精确查询和模糊查询等功能。文章通过具体代码示例展示了PHP与MySQL数据库交互的关键技术点,包括连接管理、SQL执行、结果处理和编码问题解决等。

深耕计算机专业知识与技术。 737

利用图层自动识别算法实现CAD到Revit BIM模型的高效转换 - VS2022与AutoCAD2024开发环境配置指南

本文详细介绍了如何配置VS2022与AutoCAD2024开发环境,并利用图层自动识别算法实现CAD图纸到Revit BIM模型的高效自动化转换。通过解析CAD图层的规律性,该算法能智能识别并分类墙、门、窗等构件,提取几何信息并驱动Revit自动创建三维模型,从而将传统繁琐的人工“翻模”工作转化为高效、准确的自动化流程,大幅提升BIM模型创建效率。

Apple的专栏 1126

Ubuntu10.04 下的英汉词典stratdict星际译王

 Ubuntu10.04 下的英汉词典stratdict星际译王1.sudo apt-get install stardict2.下载词典:去http://stardict.sourceforge.net/cn/Dictionaries.php下载 3.把解压后的文件夹放到/usr/share/stardict/dic/目录下 例如:stardict-cdict-gb-2.4.2.tar.bz2.bz2 tar -xjvf stardict-cdict-gb-2.4.2.tar.bz2.tar.bz2 有的

yulongblue的专栏 766

游戏封包抓取实战:雷电模拟器+ProxyDroid+查尔斯3.93+WPE全流程解析

本文详细解析了使用雷电模拟器、ProxyDroid、查尔斯3.93和WPE进行游戏封包抓取的全流程实战。通过环境搭建、代理配置与工具协同,手把手教你抓取HTTP/HTTPS及原始Socket数据,涵盖从流量转向、证书安装到数据分析和常见问题排查,是学习游戏网络协议分析与安全测试的实用指南。

u8v9w0x1y的博客 445

高熵合金AlCoCrFeNi/金刚石摩擦案例代码

本文介绍金刚石与高熵合金AlCoCrFeNi摩擦的案例。 在之前的文章中,介绍过使用fix indent命令实现虚拟球的摩擦,本文介绍使用金刚石实体球实现高熵合金摩擦的方法。 主要的模拟过程如下: (1)基体建模 建使用原子替换法获得高熵合金初始模型,升温到3000K驰豫后,冷却至300K,获得平衡组织。 (2)摩擦球建模 在高熵合金平衡组织的模型中添加金刚石摩擦球,使用change_box命令扩大box尺寸,添加金刚石摩擦球,并设置混合力场。 (3)摩擦过程 摩擦球下压一定深度后,沿y方向进行摩擦,摩擦

lammps_jiayou的博客 2900

xml学习笔记④PHP DOM--增删改查综合案例演示

xml学习笔记④PHP DOM--增删改查综合案例演示

湖北杰哥的博客 299

嵌入式软件工程师面试题目整理(一)

文章目录嵌入式软件工程师面试题目整理(一)Arm有多少32位寄存器?Arm2440和6410有什么区别CPU,MPU,MCU,SOC,SOPC联系与差别上拉&下拉&高阻态串口协议讲一讲RS232和RS485通讯接口有什么区别IIC时序图画一下,IIC有哪些状态,给一个字节,将它发送出去。IIC有什么注意事项?有没有用I/O模拟IIC,如果有需要注意什么?为什么2440的内存起始地址是3后面7个0呢?为什么6410的内存起始地址是5后面7个0呢?内存管理有什么看法?(MMU)锁有哪些?有什么注

嵌入式与Linux那些事的博客 7883

韩顺平php mysql扩展库在线词典案例

mainview.php <html> <head> <title>在线词典</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/>//设置编码 </head> <img src="ciba.png"/> <h1&...

weixin_43345480的博客 138

使用 Visual Studio Code 连接 ABAP On-Premise 系统做开发的详细配置步骤

本文详细介绍了如何在Visual Studio Code中通过ABAP Development Tools扩展连接ABAP On-Premise系统。关键步骤包括:通过Ctrl+Shift+P打开命令行面板选择「ABAP: New Destination...」创建RFC连接(仅支持SSO单点登录),选择本地SAPGUI中已有的系统,输入Client ID、语言和用户名(无需密码),最后将目标系统添加到工作区即可开始开发。文章强调了企业安全考虑下仅支持SSO的设计理念,并展示了连接配置的JSON格式示例。整

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 987

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PHP:基于XML的在线小词典案例

html> html lang="en"> head> meta charset="gb2312"> title>dictionarytitle> head> img src="view.jpg" width="400px" /> h1>查询单词h1> form action="wordProcess.php" method="post" > 请输入单词:input typ

abel004的专栏 501

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

在线小词典(mysql扩展库操作)

输入英文查询中文 1、建表 create table words(   id int primary key auto_increment,   enWords varchar(32) not null,   chWords varchar(256) not null); 2、插入数据 insert into words (enWords,chWords) values ('I',...

weixin_30780221的博客 133

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

php+mysql实现英汉查询词典的功能

1.建立数据库 create database worddb; 2.创建表 create table words( id int auto_increment primary key, en_word varchar(128) not null, ch_word varchar(256) not null ); 3.插入数据(只是举个例子,不必太计较单词是不是这个意思,英语...

weixin_33816611的博客 691

php 加xml创建小型词典查询系统

index.php: <?php if(isset($_GET['act'])){ if($_GET['act']=='tran'){ $word=isset($_POST['word'])?$_POST['word']:0; if($word){ $xml=simplexml_load_file('dict.xml'); $res=$xml->xpath("//

lifushan123的专栏 411

AJAX jquery

jquery~~~ajax get方法实例,英汉词典,数据抓取百度字典。--------------------------------------------------------------------------------------------------------------------index.php------------------------------bod

剪裁人生 的专栏 577
上一篇: PHP实现牛津英汉词典
下一篇: php实现图片加水印
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值