2011-12-30 47 views
0

我有一個小標籤雲,顯示了最後20個搜索,我試圖讓它不會顯示任何以數字0或1開頭的關鍵字。我有一個谷歌隨機搜索的問題廢話從0和1開始。谷歌正在輸入廢話,如
0 1 1 0 0 91�è70'ïÂ7§ 進入我的表單,它使我的標籤雲看起來像垃圾所以我希望它不顯示。preg_replace整個單詞

這裏基本上是我用來顯示標籤的權利。

$ num ='1';
$ result = mysql_query(「select keyword,time from keywords order by time DESC LIMIT 20」); ($ row = mysql_fetch_row($ result))
& &($ num < ='20')){
$ word = $ row [0];
$ time = $ row [1];
echo「」。$ word。「」;
$ num ++;
}

$字是我需要過濾和顯示。我試圖找出preg_replace的方式,但只能刪除第一個數字。

有誰知道我可以如何刪除$ word中的所有以0或1開頭的單詞?謝謝。

回答

2

您可以從數據庫中跳過它們選擇

select keyword, time from keywords WHERE keyword REGEXP '^[:alpha:]' ORDER by time DESC LIMIT 20 

這將讓從數據庫中只有一個字母字符開始關鍵字

如果你不想使用選擇,你可以在PHP中使用類似的東西:

$result=mysql_query("select keyword, time from keywords order by time DESC LIMIT 20"); 
while ($row=mysql_fetch_row($result)) { 
    if (preg_match('^\w',$row[0])) { 
     $word = $row[0]; 
     $time = $row[1]; 
     echo "".$word.""; 
    } 
} 

這將只回聲以alpha字符開頭的單詞。

+0

sql查詢似乎很好。我不得不在SQL中的WHERE之前刪除命令。我認爲這是你的錯字。除此之外,工作很好。謝謝。 – chris 2011-12-30 08:51:14

+0

謝謝,那是一個錯字,現在糾正了。 – Sorin 2011-12-30 08:52:46

0

不,完全確定你要問什麼。但你可以這樣做,

if(substr($word, 0, 1) === 0 || substr($word, 0, 1) === 1) { 
    $word = ''; 
    } 

這樣,如果$ word的第一個字符是0或1,它將返回NULL。