preg_replace整个单词

时间:2011-12-30 08:13:17

标签: php mysql

我有一个小标签云,显示最近20次搜索,我正在努力使它永远不会显示任何以0或1开头的关键字。我有一个问题,谷歌搜索随机垃圾开始谷歌正在输入像左派这样的垃圾 0 1 1 0 0 91�0 0 0 0〜7 7 进入我的形式,它使我的标签云看起来像垃圾,所以我希望它不显示。

这基本上就是我现在用来显示标签的内容。

  

$ num ='1';
              $ result = mysql_query(“选择关键字,关键字的时间按时间顺序DESC LIMIT 20”);
                 while(($ row = mysql_fetch_row($ result))&&($ num< = '20')){
                  $ word = $ row [0];
                  $ time = $ row [1];
  echo“”。$ word。“”;   $ NUM ++;
  }

$ word是我需要过滤和显示的东西。我试图找出preg_replace的方法,但只能删除第一个数字。

有谁知道如何删除$ word中以0或1开头的所有单词?感谢。

2 个答案:

答案 0 :(得分:2)

您可以从数据库中跳过它们

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

这将仅从数据库中获取以alpha char开头的关键字

如果您不想使用select,可以在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 char开头的单词。

答案 1 :(得分:0)

不,完全确定你在问什么。但你可以这样做,

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

这样,如果$ word的第一个字符是0或1,它将返回NULL。