2012-10-02 69 views
0

我的網站的大多數用戶不熟悉如何正確使用高級搜索運算符。以下只是其中的一個是我在數據庫中看到例如:檢測PHP字符串中的高級布爾搜索運算符

薰衣草+燒傷+

而不是使用+薰衣草+燒傷

我想觸發的錯誤信息,使他們能夠正確地學習如何進行高級搜索。當他們嘗試圍繞單個單詞而不是短語使用引號時,我已經出現了一個錯誤。現在我試圖想出一個當他們沒有正確使用+時顯示的錯誤。我的代碼可以檢測出是否有加號,但我只需要一些幫助就可以知道+是出現在單詞前還是之後。

回答

0

東西沿着這些線路應該做的:

if (preg_match('/\w\+/', $string)) { 
    // a plus was found following a word 
} 
0

你或許可以寫一個漂亮的正則表達式,將做到這一點,但你可能想嘗試一些簡單的像這樣。

$queryArray = explode(' ', $rawQuery); 
if (count($queryArray)) { 
    if ('+' === $queryArray[0][0]) { 
     // + is in front of first word in query 
    } 

    $lastWordInQuery = $queryArray[count($queryArray) - 1]; 
    if ('+' === $lastWordInQuery[strlen($lastWordInQuery) - 1]) { 
     // + is at the end of last word in query 
    } 
}