Удаление определенных символов из строки в php
Вопрос
Как я могу проверить строку в 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;
Или просто преобразовать в логическое значение
(bool)preg_match('/[#\\\\]/', $String);