PHP:检查列表中的特殊字符是否存在于字符串中

1 php arrays string character

这是一个新手问题。

假设我有一组非法字符,即:

$special_chars = array("?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}");
Run Code Online (Sandbox Code Playgroud)

我需要检查字符串中是否存在这些字符中的任何一个,即

$my_string = "abcde!fgh"
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了一个简单的解决方案,但没有找到任何令人满意的答案。

对此的任何帮助将不胜感激。

mar*_*rio 5

使用两种数据结构进行操作的简洁方法是:

count( array_intersect( str_split($my_string), $special_chars ) )
Run Code Online (Sandbox Code Playgroud)

这也会告诉您字符串中有多少特殊字符。

否则,您可以为字符列表编写一个循环并使用strpos.

最少的努力是将您的特殊字符列表转换为正则表达式字符类并针对字符串进行测试。