if(mb_stripos($hay, $needle) !== false)我的代码中有很多。我该如何替换它str_contains()?
例如,我的代码中有这个辅助函数:
<?php
$str1 = 'Hello world!'; //coming from the database
$str2 = 'hello'; // coming from $_GET user input
function str_contains_old(string $hay, string $needle):bool {
return mb_stripos($hay, $needle) !== false;
}
var_dump(str_contains_old($str1, $str2)); // gives bool(true)
Run Code Online (Sandbox Code Playgroud)
如何使它与 new 一起工作str_contains()?
var_dump(str_contains($str1, $str2)); // gives bool(false)
Run Code Online (Sandbox Code Playgroud)
Git*_*una 18
只需事先将 string 和 haystack 都转换为小写即可
$string = strtolower($originalString);
$haystack = strtolower($originalHaystack);
$isMatched = str_contains($originalHaystack,$originalString);
Run Code Online (Sandbox Code Playgroud)
Sar*_*ara 10
你想要一个不区分大小写的版本str_contains()
简短的回答是:没有。
长答案是:区分大小写是编码和语言环境相关的。当您将这些信息添加到假设时str_icontains(),您已经重新创建了mb_stripos(). TL; DR - 不要这样做。