Как найти апостроф в строке, используя PHP? - PullRequest
2 голосов
/ 26 сентября 2011

Я не могу обнаружить апостроф (') в строке. Я пытался

if (strpos($username, chr(39)) > 0 )
if (strpos($username, '\') > 0 )
if (strpos($username, "'") !== FALSE)) 

без удачи. Какой правильный способ сделать это?

Ответы [ 3 ]

4 голосов
/ 26 сентября 2011

Вы перечислили это, и оно должно работать:

if (strpos($username, "'") !== FALSE)
4 голосов
/ 26 сентября 2011

Одиночная кавычка - это специальный символ.Поэтому, если вы хотите использовать одиночную кавычку в строке , заключенной в одинарные кавычки , вам нужно экранировать одинарную кавычку с символом обратной косой черты \.

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

ИЛИ

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

Руководство по PHP: Строки

2 голосов
/ 26 сентября 2011

Просто еще одно случайное предположение: может быть, ваша одиночная цитата на самом деле не одиночная.

Если это так, вы можете попробовать mb_strpos или preg_match, чтобы найти варианты UTF-8 этого символа:

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

Или даже протестируйте с помощью /\p{Pi}/u, чтобы увидеть, является ли это другим типом двойного кавычка с одинарными кавычками.


Еще один совет: вместо strpos и булевой обработки результатов попробуйте strstr, если вы просто хотите проверить наличие символа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...