如何使用 PHP 检查字符串是否包含两个字符之一

我想检查一个字符串是否包含 a%或 a €。


我已经尝试过使用strpbrk这样的方法:


$tekens = "€%";

if (strpbrk($tekens, $kortingarray['waarde']) !== TRUE){

    $return[] = array('status' => 'error', 'field' => 'waarde', 'message' => 'Controleer je waarde');

}

但这又回来了'status' => 'error'。


有什么简单的方法可以做到这一点?


开心每一天1111
浏览 95回答 2
2回答

慕的地6264312

strpbrk 的参数顺序错误。另外,这个函数永远不会返回 TRUE,它在找到匹配时返回一个字符串,在未找到匹配时返回 FALSE - 因此,更正后的代码将是:if (strpbrk($kortingarray['waarde'], $tekens) === FALSE) {不幸的是,这仍然不起作用,因为strpbrk它不知道不同的文本编码——只有使用 8 位编码时它才会按预期工作。您的字符串很可能是用 UTF-8 编码的,这意味着您将获得恰好包含用于编码 € 的 3 个字节中的任何一个的任何字符串的匹配项。例如,₩是一场比赛。一个可行的解决方案是使用preg_match:if (preg_match('/[€%]/u',$kortingarray['waarde']) === 0) {

红颜莎娜

简单检查我们是否可以检索字符串位置应该适合您的情况。$yourString = "€%fasdfasdf";if (strpos($yourString, "€") !== FALSE || strpos($yourString, "%") !== FALSE) {    //DO SOMETHING}
打开App,查看更多内容
随时随地看视频慕课网APP