2011-01-21 41 views
28

thể trùng lặp:
Find last character in a string in PHP

hi đó?

làm cách nào tôi có thể biết char cuối cùng của chuỗi $ là ','?

cảm ơn rất nhiều?

+2

Có thể trùng lặp [tìm ký tự cuối cùng trong chuỗi trong php] (http://stackoverflow.com/questions/4427172/find-last-character-in-a-string-in-php). Sẽ không cho bạn biết nếu chuỗi bắt đầu bằng dấu phẩy, nhưng tôi sẽ cho bạn biết cách sử dụng 'if'. – Gordon

+2

[Hướng dẫn sử dụng PHP: chức năng chuỗi] (http://php.net/manual/en/ref.strings.php) –

Trả lời

95

Có một vài lựa chọn:

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

Hoặc (hơi ít có thể đọc được):

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

Hoặc (thậm chí ít có thể đọc được):

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

Hoặc (thậm chí tệ hơn nữa):

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

Hoặc (wow này là xấu):

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

Việc lấy đi, chỉ sử dụng substr($string, -1) và được thực hiện với nó. Nhưng có rất nhiều lựa chọn thay thế khác ra khỏi đó ...

+4

Tôi không nghĩ rằng thứ hai cuối cùng của bạn là xấu ở tất cả ... –

+4

Tôi biết nó chủ quan, nhưng tôi tìm thấy một preg_match một là dễ đọc nhất – mastazi

+0

Từ PHP 7.1 bạn có thể sử dụng 'if ($ string [-1] == ',')'. Nó rõ ràng và nhanh hơn sử dụng 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

Đối với tối ưu vi:

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

sẽ kích hoạt thông báo khi '$ string = ''' mặc dù. downvote không phải tôi. – Gordon

+0

@Gordon khá hữu ích thực sự (tùy thuộc vào trường hợp sử dụng, tất nhiên) – mario

5

Bạn có thể sử dụng biểu thức thông thường cho điều này trong PHP:

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

này nói để kiểm tra một khớp với dấu phẩy ở cuối chuỗi $.

Các vấn đề liên quan