2012-06-27 23 views
7

¿Cómo hago una instrucción if que verifica si la cadena contiene una barra diagonal?Si la cadena contiene una barra inclinada

$string = "Test/Test"; 
if($string .......) 
{ 
    mysql_query(""); 
} 
else 
{ 
    echo "the value contains a invalid character"; 
} 
+0

indexOf function? – nhahtdh

+0

['strpos()'] (http://php.net/manual/en/function.strpos.php): 'if (strpos ($ cadena, '/')! == FALSO) {echo" Contiene un /"; } ' – DaveRandom

+0

Puede encontrar [' s ($ str) -> contains ('/') '] (https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php# L93) útil, como se encuentra en [esta biblioteca independiente] (https://github.com/delight-im/PHP-Str). – caw

Respuesta

9

Puede usar strpos, lo que asegurará que haya una barra inclinada en la cadena, pero debe ejecutarla a través de una ecuación para asegurarse de que no sea falsa. Aquí puede usar strstr(). ¡Su código corto y simple, y hace el trabajo!

if(strstr($string, '/')){ 
    //.... 
} 

Para aquellos que viven y mueren por el manual, cuando el pajar es muy grande, o la aguja es muy pequeño, es más rápido usar strstr(), a pesar de lo que dice el manual.

Ejemplo:

Usando strpos(): ,00043487548828125

Usando strstr(): 0,00023317337036133

+0

['Si solo desea determinar si una aguja en particular se encuentra dentro de un pajar, utilice en su lugar la función más rápida y menos intensiva de memoria strpos().] (Http://php.net/manual/en/function.strstr.php) – DaveRandom

+1

Envié una edición al manual, porque esa nota solo se aplica a los grandes almiares. –

5
if(strpos($string, '/') !== false) { 
    // string contains/
} 

Desde el manual de PHP de strstr:

Nota:

Si sólo desea determinar si una aguja especial se produce dentro de pajar, utilice el más rápido y menos memoria función intensiva strpos() en su lugar.

0

Uso strpos()

Si no vuelve falsa, el personaje fue igualada.

Cuestiones relacionadas