2011-01-21 8 views
28

Duplicar posible:
Find last character in a string in PHP

hola?

¿cómo puedo saber si el último carácter de una cadena $ es ','?

muchas gracias?

+2

Posible duplicado de [encontrar el último carácter en una cadena en php] (http://stackoverflow.com/questions/4427172/find- last-character-in-a-string-in-php). No te diré si la cadena comienza con una coma, pero sé que sabes cómo usar un 'si'. – Gordon

+2

[PHP Manual: funciones de cadena] (http://php.net/manual/en/ref.strings.php) –

Respuesta

95

Hay algunas opciones:

if (substr($string, -1) == ',') { 

O (un poco menos legible):

if ($string[strlen($string) - 1] == ',') { 

O (incluso menos legible):

if (strrpos($string, ',') == strlen($string) - 1) { 

O (lo que es peor aún):

if (preg_match('/,$/', $string)) { 

O (wow esto es malo):

if (end(explode(',', $string)) == '') { 

Para llevar, solo use substr($string, -1) y termine con eso. Pero hay muchas otras alternativas por ahí ...

+4

No creo que tu segundo anterior sea tan malo ... –

+4

Sé que es subjetivo, pero creo que el preg_match es el más legible – mastazi

+0

Desde PHP 7.1 puedes use 'if ($ cadena [-1] == ',')'. Es claro y más rápido que usar substr(). –

3
if (substr($str, -1) === ',') 
{ 
echo 'it is'; 
} 
10
$string = 'foo,bar,'; 
if(substr($string, -1) === ','){ 
    // it ends with ',' 
} 
2
//$str hold your string 
if(substr($str, -1) ==',') 
{ 
    return true 
} 
3

Para las micro optimizadores:

$string[strlen($string)-1] == "," 
+1

activará un aviso cuando '$ string = ''' embargo. downvote wasnt yo. – Gordon

+0

@Gordon, que en realidad es bastante útil (dependiendo del caso de uso, por supuesto) – mario

5

Se pueden utilizar expresiones regulares para esto en PHP:

if (preg_match("/,$/", $string)) { 
    #DO THIS 
} else { 
    #DO THAT 
} 

que dice esto para verificar si hubo coincidencia de una coma al final de $ string.

Cuestiones relacionadas