Extracción de caracteres específicos de una cadena en PHP
Pregunta
¿Cómo puedo comprobar una cadena en PHP para caracteres específicos, tales como '#' o '\'?
realmente no quiero usar sustituir, simplemente devolver verdadero o falso.
Gracias
Solución
utilizar la función strstr http://us2.php.net/manual /en/function.strstr.php Devuelve parte de cadena pajar desde la primera aparición de la aguja hasta el final de pajar
Nota: Si sólo desea determinar si una aguja especial se produce dentro de un pajar, utilice los más rápidos y menos memoria strpos función intensiva () en su lugar.
Otros consejos
Se puede utilizar la función de strpos
, si sólo quiere saber si una cadena contiene otra (el contenido de sus preguntas parece indicar que, incluso si el título dice "eliminar") .
Nota:. No se olvide de utilizar el operador !==
o ===
, ya que la función puede devolver 0 o falso, y los que tienen un significado diferente
Si desea caracteres "eliminar", str_replace
o strtr
puede hacer el truco.
Puede hacer algo como esto:
if (strpos($string, '#') !== false || strpos($string, '\') !== false) {
// One of those two characters is in the string.
}
Nota en particular la sintaxis !==
, que diferencia entre false
(no se encuentra que significa que el carácter) y 0
(lo que significa que se encontró en la posición 0
).
Trate de expresiones regulares.
preg_match('/[#\\\\]/', $String);
Nota: Tienes que escapar las barras invertidas '\' tres veces
.Si realmente los quiere en formato booleano, se puede utilizar un ternaria operador:? ' como tal
preg_match('/[#\\\\]/', $String) ? true : false;
O, simplemente, convertir a booleano
(bool)preg_match('/[#\\\\]/', $String);