1. 开源 中文php搜索引擎有哪些
某目前接触到的只有lucene和coreseek了
lucene更多是用在java方面的,但是也可以和php结合起来用
coreseek和php结合使用比较好,官方文档说的很详细
君且自学自勉哇。
2. PHP 查找中文字符串
在PHP中查找中文字符,有两种方案:
将PHP保存为与欲查找中文一样的编码,然后使用strpos查找。
将PHP保存为UTF-8无BOM编码,然后转换字符串编码为UTF-8,再用strpos查找。
第一种方法:
strpos($curl_res,'中文');
第二种方法:
$str=mb_convert_encoding($str,'utf-8','gbk');
mb_strpos($str,'中文');
主意:函数中的中文字符串参数的编码,必须要和PHP文件保存格式的编码一致。
3. thinkphp实现网站中文搜索功能
中文搜索,无非就是在搜索框中提交值,然后拿着这个值去数据库中进行模糊查询或者精确查询(视需求而定),然后将结果返回到页面中,遍历输出就行了 ,前台的话没有现成的例子
4. PHP 根据汉字拼音搜索是怎么做到的
<?php
functiongetfirstchar($s0){//获取单个汉字拼音首字母。注意:此处不要纠结。汉字拼音是没有以U和V开头的
$fchar=ord($s0{0});
if($fchar>=ord("A")and$fchar<=ord("z"))returnstrtoupper($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>=-20319and$asc<=-20284)return"A";
if($asc>=-20283and$asc<=-19776)return"B";
if($asc>=-19775and$asc<=-19219)return"C";
if($asc>=-19218and$asc<=-18711)return"D";
if($asc>=-18710and$asc<=-18527)return"E";
if($asc>=-18526and$asc<=-18240)return"F";
if($asc>=-18239and$asc<=-17923)return"G";
if($asc>=-17922and$asc<=-17418)return"H";
if($asc>=-17922and$asc<=-17418)return"I";
if($asc>=-17417and$asc<=-16475)return"J";
if($asc>=-16474and$asc<=-16213)return"K";
if($asc>=-16212and$asc<=-15641)return"L";
if($asc>=-15640and$asc<=-15166)return"M";
if($asc>=-15165and$asc<=-14923)return"N";
if($asc>=-14922and$asc<=-14915)return"O";
if($asc>=-14914and$asc<=-14631)return"P";
if($asc>=-14630and$asc<=-14150)return"Q";
if($asc>=-14149and$asc<=-14091)return"R";
if($asc>=-14090and$asc<=-13319)return"S";
if($asc>=-13318and$asc<=-12839)return"T";
if($asc>=-12838and$asc<=-12557)return"W";
if($asc>=-12556and$asc<=-11848)return"X";
if($asc>=-11847and$asc<=-11056)return"Y";
if($asc>=-11055and$asc<=-10247)return"Z";
returnNULL;
//return$s0;
}
functionpinyin_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;
}
echopinyin_long('*《,@#$123HAHadf一年后');
?>