如何使用PHP在字符串中查找撇号?

时间:2011-09-25 20:54:15

标签: php string

我无法在字符串中检测到撇号(')。我试过了

if (strpos($username, chr(39)) > 0 )
if (strpos($username, '\') > 0 )
if (strpos($username, "'") !== FALSE)) 
没有运气。这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:4)

单引号是一个特殊字符。因此,如果您想在single quoted string中使用单引号,则必须使用反斜杠\符号来转义单引号。

int singleQuotePosition = strpos($username, '\'');

OR

int singleQuotePosition = strpos($username, "'");

PHP Manual: Strings

答案 1 :(得分:4)

你列出了这个,它应该有效:

if (strpos($username, "'") !== FALSE)

答案 2 :(得分:2)

另一个随机猜测:也许你的单引号不是真正的单引号。

如果是这样,您可能需要尝试mb_strpospreg_match来查找该字符的UTF-8变体:

preg_match("/'/u", $string);

甚至可以使用/\p{Pi}/u进行测试,看看它是否是另一种类型的单引号doppelganger。


另一个提示:如果您只想测试角色的存在,请尝试strstr而不是strpos和布尔结果摆弄。