作者jimshsu (jims)
看板PHP
标题Re: [请益] 请问分割双引号的字原问题
时间Fri Dec 22 15:23:20 2006
分享一下我最後的作法
function keyword_Str($keyStr)
{
preg_match_all('/["](.*?)["]/',$keyStr, $rlt, PREG_SET_ORDER);
foreach ($rlt as $array)
{
$keyStr = ereg_replace($array[0],' ', $keyStr);
$result[] = $array[1];//把双引号萃取出的字放入新的阵列$resoult
}
$rlt = explode(' ', $keyStr);
foreach ($rlt as $value)
$result[] = $value;
return $result;//回传阵列 已被拆解开的关键字串 有部份是空值 要判断後再使用
}
不过我现在却发现新的问题
我再MYSQL中使用如下的fulltext搜寻
SELECT DISTINCT Id FROM index WHERE
MATCH (`html`) AGAINST ( 'john poter' IN BOOLEAN MODE)
我要找的字是 john poter(要连在一起)
但是上面的语法MySQL会把有john 或poter的都找出来
所以使用者用双引号反而意义是把引号内的字串做OR
不知这是否是SQL MATCH的限制?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 134.208.7.229
1F:→ buganini:ereg_replace可以换成str_replace 12/23 11:58
3F:→ buganini:所以取$array[0]就好了,双引号继续用 12/23 12:01
4F:→ buganini:然後implode(' ',$result);去用 12/23 12:02
5F:→ buganini:最好用一下mysql_escape_string() 12/23 12:03