就像问题所说:
有没有办法调用case- 不敏感 substr_count()?
答案 0 :(得分:18)
没有本地方式,你可以这样做:
substr_count(strtoupper($haystack), strtoupper($needle));
你当然可以把它写成一个函数:
function substri_count($haystack, $needle)
{
return substr_count(strtoupper($haystack), strtoupper($needle));
}
在使用案例更改来比较字符串时,请注意土耳其测试。
http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html
从上面开始:
正如很多人所讨论的,土耳其语中的“我”与大多数语言的行为不同。根据Unicode标准,当它移动到大写时,我们的小写“i”变为“İ”(U + 0130“Latin Capital Letter I With Dot Above”)。同样,当它移动到小写时,我们的大写“I”变成“ı”(U + 0131“Latin Small Letter Dotless I”)。
答案 1 :(得分:10)
简单:将两个字符串强制为小写:
substr_count(strtolower($haystack), strtolower($needle));
答案 2 :(得分:2)
在计算之前执行strtolower
。