Как проверить строку в php для определенных символов, таких как «#» или «\»?
Я действительно не хочу использовать replace, просто верните true или false.
благодаря
используйте функцию strstr http://us2.php.net/manual/en/function.strstr.php Возвращает часть строки сена с первого вхождения иглы в конец стога сена
Примечание. Если вы хотите определить, существует ли конкретная игла в стоге сена, используйте более быструю и менее интенсивную память функцию strpos ().
Вы можете использовать функцию strpos
, если хотите узнать только, содержит ли строка другую (содержание ваших вопросов, похоже, указывает на то, что даже если ваш заголовок говорит «удалить») .
Примечание. Не забудьте использовать оператор !==
или ===
, поскольку функция может возвращать 0 или false, и они имеют разное значение.
Если вы хотите «удалить» символы, str_replace
или strtr
могли бы сделать трюк.
Вы можете сделать что-то вроде этого:
if (strpos($string, '#') !== false || strpos($string, '\') !== false) { // One of those two characters is in the string. }
Обратите внимание, в частности, на синтаксис !==
, который различает значение false
(что означает, что символ не найден) и 0
(что означает, что оно было найдено в позиции 0
).
Попробуйте регулярные выражения.
preg_match('/[#\\\\]/', $String);
Примечание. Вы должны избегать обратной косой черты три раза.
Если вы действительно хотите их в логическом формате, вы можете использовать тернарный оператор '?:' Как таковой
preg_match('/[#\\\\]/', $String) ? true : false;
Или просто конвертируйте в boolean
(bool)preg_match('/[#\\\\]/', $String);