Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery令牌输入不';I don’我认不出单词的首字母_Php_Jquery_Jquery Tokeninput - Fatal编程技术网

Php jQuery令牌输入不';I don’我认不出单词的首字母

Php jQuery令牌输入不';I don’我认不出单词的首字母,php,jquery,jquery-tokeninput,Php,Jquery,Jquery Tokeninput,我正在使用来自的jQuery Tokeninput自动完成插件 我已经将它构建到我的应用程序中,并使用服务器端脚本获得所有结果。当我使用Tokeninput演示中的php脚本进行尝试时,效果很好。但是当我使用php脚本作为源代码时,它无法识别单词的第一个字母。例如,如果我在搜索“Marc Fisher”时键入“Marc”,它什么也找不到,但当我键入“arc”时,它就工作了。姓氏也是如此 以下是我的php脚本: $search = $_GET['q']; $

我正在使用来自的jQuery Tokeninput自动完成插件

我已经将它构建到我的应用程序中,并使用服务器端脚本获得所有结果。当我使用Tokeninput演示中的php脚本进行尝试时,效果很好。但是当我使用php脚本作为源代码时,它无法识别单词的第一个字母。例如,如果我在搜索“Marc Fisher”时键入“Marc”,它什么也找不到,但当我键入“arc”时,它就工作了。姓氏也是如此

以下是我的php脚本:

    $search             = $_GET['q'];
    $friends            = array(
    0   => array('name' => 'Marc Fisher', 'id' => '111'),
    1   => array('name' => 'Thomas Mann', 'id' => '222'),
    2   => array('name' => 'Jon Applebaum', 'id' => '333')
    );
    $searched_friends   = array();
    foreach ($friends as $friend) {
        $check          = strpos($friend['name'], $search);
        if ($check !== false) {
            array_push($searched_friends, $friend);
        }
    }
    echo(json_encode($searched_friends));
奇怪的是,如果我直接在GET的URL中键入“Mar”,那么它就会工作并输出:

[{"name":"Marc Fisher"}]

我找遍了所有的地方,尝试了我能想到的一切——但都没有用。你知道怎么了吗?

我让它工作了,但我不知道为什么。基本上,我用preg_匹配切换了strpos。现在它工作了。

我让它工作了,但我不知道为什么。基本上,我用preg_匹配切换了strpos。现在,正则表达式被锚定了吗?我想到的唯一一件事是,如果查询参数中填充了空格,或者存在大小写问题,并且
preg_match
不区分大小写,那么该更改可能会产生影响。顺便说一句,如果你只是在做线性整数索引,你不需要在数组中手动指定它们。我也有过第一个字母的问题,当我在Rails中使用令牌输入时就发生了。仍然希望从某处得到明确的解释。