如何使strpos不区分大小写

时间:2011-07-22 19:56:44

标签: php strpos

如何更改strpos以使其不区分大小写。原因是如果product->name MadBike 且搜索字词是 bike ,它将不会回显链接。 我主要担心的是代码的速度。

<?php
$xml  = simplexml_load_file('test.xml');
$searchterm = "bike";
foreach ($xml->product as $product) {
if (strpos($product->name, $searchterm) !== false ) {
echo $product->link;
} }
?>

4 个答案:

答案 0 :(得分:92)

您正在寻找stripos()

如果您无法使用,请先在两个字符串上调用strtolower()

修改

如果您想要找到带有变音符号的子字符串,

stripos()将无效。

例如:

stripos("Leży Jerzy na wieży i nie wierzy, że na wieży leży dużo JEŻY","jeży");会返回false,但会返回int(68)

答案 1 :(得分:10)

http://www.php.net/manual/en/function.stripos.php

stripos()不区分大小写。

答案 2 :(得分:1)

stripos()中的

'i'表示不区分大小写

if(stripos($product->name, $searchterm) !== false){ //'i' case insensitive
        echo "Match = ".$product->link."<br />;
    }

答案 3 :(得分:1)

同时命名和在$ strpos之前$ searchterm小写。

$haystack = strtolower($product->name);
$needle = strtolower($searchterm);

if(strpos($haystack, $needle) !== false){  
    echo "Match = ".$product->link."<br />;
}