Re: [請益] 請問分割雙引號的字原問題

看板PHP作者 (jims)時間19年前 (2006/12/22 15:16), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串7/7 (看更多)
分享一下我最後的作法 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

12/23 11:58, , 1F
ereg_replace可以換成str_replace
12/23 11:58, 1F

12/23 12:00, , 2F
12/23 12:00, 2F

12/23 12:01, , 3F
所以取$array[0]就好了,雙引號繼續用
12/23 12:01, 3F

12/23 12:02, , 4F
然後implode(' ',$result);去用
12/23 12:02, 4F

12/23 12:03, , 5F
最好用一下mysql_escape_string()
12/23 12:03, 5F
文章代碼(AID): #15YuPU3U (PHP)
文章代碼(AID): #15YuPU3U (PHP)