很多站长朋友们都不太清楚php汉字搜索,今天小编就来给大家整理php汉字搜索,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP 根据汉字拼音搜索是怎么做到的 2、 如何在php中进行汉字查找? 3、 PHP中怎么实现关键字搜索? 4、 为什么我的PHP小网页只能搜索到"字母"和"数字"不能搜索"汉字" PHP 根据汉字拼音搜索是怎么做到的<?php
function?getfirstchar($s0){???//获取单个汉字拼音首字母。注意:此处不要纠结。汉字拼音是没有以U和V开头的
????$fchar?=?ord($s0{0});
????if($fchar?>=?ord("A")?and?$fchar?<=?ord("z")?)return?strtoupper($s0{0});
????$s1?=?iconv("UTF-8","gb2312",?$s0);
????$s2?=?iconv("gb2312","UTF-8",?$s1);
????if($s2?==?$s0){$s?=?$s1;}else{$s?=?$s0;}
????$asc?=?ord($s{0})?*?256?+?ord($s{1})?-?65536;
????if($asc?>=?-20319?and?$asc?<=?-20284)?return?"A";
????if($asc?>=?-20283?and?$asc?<=?-19776)?return?"B";
????if($asc?>=?-19775?and?$asc?<=?-19219)?return?"C";
????if($asc?>=?-19218?and?$asc?<=?-18711)?return?"D";
????if($asc?>=?-18710?and?$asc?<=?-18527)?return?"E";
????if($asc?>=?-18526?and?$asc?<=?-18240)?return?"F";
????if($asc?>=?-18239?and?$asc?<=?-17923)?return?"G";
????if($asc?>=?-17922?and?$asc?<=?-17418)?return?"H";
????if($asc?>=?-17922?and?$asc?<=?-17418)?return?"I";
????if($asc?>=?-17417?and?$asc?<=?-16475)?return?"J";
????if($asc?>=?-16474?and?$asc?<=?-16213)?return?"K";
????if($asc?>=?-16212?and?$asc?<=?-15641)?return?"L";
????if($asc?>=?-15640?and?$asc?<=?-15166)?return?"M";
????if($asc?>=?-15165?and?$asc?<=?-14923)?return?"N";
????if($asc?>=?-14922?and?$asc?<=?-14915)?return?"O";
????if($asc?>=?-14914?and?$asc?<=?-14631)?return?"P";
????if($asc?>=?-14630?and?$asc?<=?-14150)?return?"Q";
????if($asc?>=?-14149?and?$asc?<=?-14091)?return?"R";
????if($asc?>=?-14090?and?$asc?<=?-13319)?return?"S";
????if($asc?>=?-13318?and?$asc?<=?-12839)?return?"T";
????if($asc?>=?-12838?and?$asc?<=?-12557)?return?"W";
????if($asc?>=?-12556?and?$asc?<=?-11848)?return?"X";
????if($asc?>=?-11847?and?$asc?<=?-11056)?return?"Y";
????if($asc?>=?-11055?and?$asc?<=?-10247)?return?"Z";
????return?NULL;
????//return?$s0;
}
function?pinyin_long($zh){??//获取整条字符串汉字拼音首字母
????$ret?=?"";
????$s1?=?iconv("UTF-8","gb2312",?$zh);
????$s2?=?iconv("gb2312","UTF-8",?$s1);
????if($s2?==?$zh){$zh?=?$s1;}
????for($i?=?0;?$i?<?strlen($zh);?$i++){
????????$s1?=?substr($zh,$i,1);
????????$p?=?ord($s1);
????????if($p?>?160){
????????????$s2?=?substr($zh,$i++,2);
????????????$ret?.=?getfirstchar($s2);
????????}else{
????????????$ret?.=?$s1;
????????}
????}
????return?$ret;
}
echo?pinyin_long('*《,@#$123HAHadf一年后');
?>
如何在php中进行汉字查找?<?php
$str=array(':','你好:','你好:','hello');
for($i=0;$i<count($str);$i++){
if(ereg('你好:',$str[$i]))echo "$i.匹配<br>";//正则表达式
}
?>
PHP中怎么实现关键字搜索?PHP要实现关键字查搜索,需要用到like关键字来组合查询条件
like具体实现方法如下:
例一:
1????$userForm=M('user');????
1????$where['name']=array('like','phpernote%');????
2????$userForm->where($where)->select();
这里的like查询即为:name like 'phpernote%'
例二:
1$where['name']=array('like',array('%phpernote%','%测试数据'),'OR');
这里的like查询即为:name like '%phpernote%' or name like '%测试数据'
例三:
1$where['name']=array(array('like','%a%'),array('like','%b%'),array('like','%c%'),'phpernote','or');
这里的like查询即为:(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'phpernote')
例四:
1$where['_string']='(name?like?"%phpernote%")??OR?(title?like?"%phpernote")'
这里的like查询即为:name like '%phpernote%' or title like '%phpernote'
为什么我的PHP小网页只能搜索到"字母"和"数字"不能搜索"汉字"那要看你数据库(MYSQL)字段使用的是GBK还是UTF8了!
或许是你上传(插入INSERT)或浏览显示(SELECT)字段时有没有混淆;
我也遇到过和你一样的情况,希望能帮到你!
关于php汉字搜索的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php汉字搜索 php 搜索字符串的详细内容...