我想檢查一個字符串是否包含 a%或 a €。我已經(jīng)嘗試過使用strpbrk這樣的方法:$tekens = "€%";if (strpbrk($tekens, $kortingarray['waarde']) !== TRUE){ $return[] = array('status' => 'error', 'field' => 'waarde', 'message' => 'Controleer je waarde');}但這又回來了'status' => 'error'。有什么簡單的方法可以做到這一點(diǎn)?
2 回答

慕的地6264312
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個贊
strpbrk 的參數(shù)順序錯誤。另外,這個函數(shù)永遠(yuǎn)不會返回 TRUE,它在找到匹配時返回一個字符串,在未找到匹配時返回 FALSE -?因此,更正后的代碼將是:
if?(strpbrk($kortingarray['waarde'],?$tekens)?===?FALSE)?{
不幸的是,這仍然不起作用,因?yàn)?code>strpbrk它不知道不同的文本編碼——只有使用 8 位編碼時它才會按預(yù)期工作。您的字符串很可能是用 UTF-8 編碼的,這意味著您將獲得恰好包含用于編碼 € 的 3 個字節(jié)中的任何一個的任何字符串的匹配項(xiàng)。例如,?
是一場比賽。
一個可行的解決方案是使用preg_match
:
if?(preg_match('/[€%]/u',$kortingarray['waarde'])?===?0)?{

紅顏莎娜
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個贊
簡單檢查我們是否可以檢索字符串位置應(yīng)該適合您的情況。
$yourString = "€%fasdfasdf";
if (strpos($yourString, "€") !== FALSE || strpos($yourString, "%") !== FALSE) {
//DO SOMETHING
}
- 2 回答
- 0 關(guān)注
- 152 瀏覽
添加回答
舉報
0/150
提交
取消