我无法在字符串中检测到撇号(')。我试过了
if (strpos($username, chr(39)) > 0 )
if (strpos($username, '\') > 0 )
if (strpos($username, "'") !== FALSE))
没有运气。这样做的正确方法是什么?
答案 0 :(得分:4)
单引号是一个特殊字符。因此,如果您想在single quoted string中使用单引号,则必须使用反斜杠\
符号来转义单引号。
int singleQuotePosition = strpos($username, '\'');
OR
int singleQuotePosition = strpos($username, "'");
答案 1 :(得分:4)
你列出了这个,它应该有效:
if (strpos($username, "'") !== FALSE)
答案 2 :(得分:2)
另一个随机猜测:也许你的单引号不是真正的单引号。
如果是这样,您可能需要尝试mb_strpos
或preg_match
来查找该字符的UTF-8变体:
preg_match("/'/u", $string);
甚至可以使用/\p{Pi}/u
进行测试,看看它是否是另一种类型的单引号doppelganger。
另一个提示:如果您只想测试角色的存在,请尝试strstr
而不是strpos
和布尔结果摆弄。