为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
开心每一天1111 2023-06-24 18:23:49
我想检查一个字符串是否包含 a%或 a €。我已经尝试过使用strpbrk这样的方法:$tekens = "€%";if (strpbrk($tekens, $kortingarray['waarde']) !== TRUE){    $return[] = array('status' => 'error', 'field' => 'waarde', 'message' => 'Controleer je waarde');}但这又回来了'status' => 'error'。有什么简单的方法可以做到这一点?
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

strpbrk 的参数顺序错误。另外,这个函数永远不会返回 TRUE,它在找到匹配时返回一个字符串,在未找到匹配时返回 FALSE - 因此,更正后的代码将是:

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

不幸的是,这仍然不起作用,因为strpbrk它不知道不同的文本编码——只有使用 8 位编码时它才会按预期工作。您的字符串很可能是用 UTF-8 编码的,这意味着您将获得恰好包含用于编码 € 的 3 个字节中的任何一个的任何字符串的匹配项。例如,是一场比赛。

一个可行的解决方案是使用preg_match

if (preg_match('/[€%]/u',$kortingarray['waarde']) === 0) {


查看完整回答
反对 回复 2023-06-24
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

简单检查我们是否可以检索字符串位置应该适合您的情况。


$yourString = "€%fasdfasdf";


if (strpos($yourString, "€") !== FALSE || strpos($yourString, "%") !== FALSE) {

    //DO SOMETHING

}


查看完整回答
反对 回复 2023-06-24
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信