2011-01-21 28 views
28

Eventuali duplicati:
Find last character in a string in PHP

Hi there?

come posso sapere se l'ultimo carattere di una stringa $ è ","?

grazie mille?

+2

Possibile duplicato di [trova l'ultimo carattere in una stringa in php] (http://stackoverflow.com/questions/4427172/find-last-character-in-a-string-in-php). Non ti dirò se la stringa inizia con una virgola, ma ti faccio sapere come usare un 'se'. – Gordon

+2

[PHP Manual: string functions] (http://php.net/manual/en/ref.strings.php) –

risposta

95

Ci sono alcune opzioni:

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

Or (un po 'meno leggibile):

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

O (anche meno leggibile):

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

O (peggio ancora):

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

Or (wow questo è male):

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

Il take away, è solo utilizzare substr($string, -1) e si deve fare con esso. Ma ci sono molte altre alternative là fuori ...

+4

Non penso che il tuo penultimo sia così male ... –

+4

So che è soggettivo, ma trovo che il preg_match sia il più leggibile – mastazi

+0

Da PHP 7.1 puoi usa 'if ($ string [-1] == ',')'. È chiaro e veloce rispetto all'utilizzo di 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

Per le micro ottimizzatori:

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

attiverà un avviso quando '$ stringa = ''' comunque. non mi era vero. – Gordon

+0

@Gordon che è abbastanza utile in realtà (a seconda del caso d'uso, ovviamente) – mario

5

È possibile utilizzare le espressioni regolari per questo in PHP:

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

che indica di verificare la presenza di un corrispondenza di una virgola alla fine della stringa $.

Problemi correlati