Strpos在php无法正常工作

时间:2016-06-20 11:23:21

标签: php text strpos

我正在进行文本分析。我有一张表正面的表。记录是逐个获取的,并通过mysqli_fetch_array在一个数组中内爆。

    while(($rowx = mysqli_fetch_array($resultx,MYSQLI_NUM)))
    {

     $wordx = implode("", $rowx);

        if(strpos($text, $wordx) !== FALSE) 

        {

            $count1 = substr_count($text, $wordx);
            $pos_prob += .2 * $count1;
            echo "pos prob is".$pos_prob;
        }
    }

但是strpos无法匹配从table.i.e中获取的字符串。如果文本是“这是一本优秀的书”,if条件永远不会成立。即使表中还有优秀这个词。如果我将值$ wordx硬编码为

    $wordx='excellent';

只有这样才有效。有谁知道为什么会这样? :(任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:0)

我不明白是否需要内爆每一行。我的假设是每行有一个单词。

简单的strpos文本匹配示例:

<?php

$words = array(
    'big',
    'fat',
    'mamma'
    );

$text = 'One day fat foo walked to the bar';

$matches = array();
foreach($words as $word) {
    if(strpos($text, $word) !== false)
        $matches[] = $word; 
}


var_dump($matches);

输出:

array (size=1)
  0 => string 'fat' (length=3)

请注意,这也会匹配单词部分并区分大小写,因此不太理想。例如:'fat'包含在单词中:'father','infatuated'和'marrowfat'。