Trong hướng dẫn này, chúng ta sẽ xem Cách xóa ký tự cuối cùng khỏi chuỗi trong PHP. Hàm rtrim[] trong PHP, hàm substr[] và hàm mb_substr[] có thể được sử dụng để xóa Ký tự cuối cùng khỏi chuỗi
Mục lục
Hàm rtrim[] trong PHP
Hàm rtrim[] trong PHP xóa khoảng trắng và các ký tự đã xác định khỏi chuỗi
Trong ví dụ này, hàm rtrim[] được sử dụng để xóa ký tự cuối cùng khỏi chuỗi
________0
Trong đoạn mã trên của PHP, Ký tự cuối cùng bị xóa khỏi chuỗi
Bạn có thể sử dụng cùng chức năng để xóa nhiều ký tự khỏi chuỗi
Hàm PHP substr[]
Hàm substr[] trong PHP cũng loại bỏ một phần của chuỗi và chỉ trả về phần còn lại
Trong ví dụ thứ hai, hàm substr[] cũng được sử dụng để xóa ký tự cuối cùng khỏi chuỗi
________1
Trong đoạn mã trên của PHP, Ký tự cuối cùng được xóa khỏi chuỗi với sự trợ giúp của chất nền []
Ba tham số được sử dụng bên trong hàm substr[]. Tham số đầu tiên được xác định trong substr[] là chính chuỗi đó, tham số thứ hai là điểm bắt đầu và tham số thứ ba là độ dài của chuỗi được trả về
0 biểu thị rằng điểm bắt đầu là ký tự đầu tiên của chuỗi
-1 biểu thị rằng ký tự cuối cùng sẽ bị xóa
Hàm PHP mb_substr[]
hàm substr[] không hoạt động bình thường nếu chuỗi chứa một số ký tự đặc biệt để chúng ta có thể sử dụng hàm mb_substr[] của php để xóa ký tự cuối cùng khỏi chuỗi
Làm cách nào để xóa ký tự cuối cùng khỏi chuỗi trong PHP?
May mắn thay, PHP có rất nhiều hàm thao tác chuỗi mà bạn có thể sử dụng để loại bỏ ký tự cuối cùng đó.
Trong hướng dẫn nhanh này, chúng ta sẽ thử ba cách để xóa [các] ký tự cuối cùng khỏi một chuỗi trong PHP
Hãy bắt đầu với tùy chọn yêu thích của tôi rtrim[]
a. k. một trang trí bên phải
Xóa ký tự cuối cùng bằng PHP rtrim[]
PHP rtrim[]
chấp nhận hai đối số. chuỗi đầu vào và các ký tự bạn muốn xóa khỏi phần cuối của chuỗi đầu vào
Chẳng hạn, để xóa dấu phẩy cuối cùng trong danh sách được phân tách bằng dấu phẩy
Hãy xem một ví dụ thực tế hơn;
Hãy tưởng tượng hàm của bạn chấp nhận tiền tố URL làm đối số. Chức năng này thêm một đường dẫn [e. g. , /api/v2
] vào tiền tố URL và trả về kết quả
Vấn đề với cách tiếp cận trên là nếu $baseUrl
chứa dấu gạch chéo ở cuối, bạn có thể nhận được dấu gạch chéo kép trong kết quả
Bạn chỉ có thể tránh dấu gạch chéo kép với rtrim[]
như vậy
- rtrim-ví dụ-api-đúng. php
Nhưng nếu bạn cần xóa một số ký tự khỏi cuối chuỗi [bất kể ký tự đó là gì] thì sao?
Xóa ký tự cuối cùng bằng PHP substr[]
Một cách để loại bỏ ký tự cuối cùng trong một chuỗi là sử dụng hàm PHP substr[]
Hàm substr[]
trả về một phần của chuỗi dựa trên rtrim[]
0 và rtrim[]
1 [số ký tự]
Trong ví dụ trên, rtrim[]
0 là rtrim[]
3 [ký tự đầu tiên] và rtrim[]
1 là rtrim[]
5, là số ký tự tính từ phần bù
Và kết quả là rtrim[]
6
rtrim[]
0 cũng có thể nhận giá trị âm. Khi rtrim[]
0 âm, số đếm sẽ bắt đầu từ cuối chuỗi. Nói rằng rtrim[]
9 có nghĩa là ký tự cuối cùng từ cuối chuỗi. Giá trị rtrim[]
0 có nghĩa là hai ký tự cuối cùng, v.v.
Điều đó nghe giống như những gì chúng ta cần. Hãy xem một ví dụ
- chất nền-ví dụ-last-char. php
Và nếu bạn muốn xóa ba ký tự cuối cùng khỏi một chuỗi
- chất nền-ví dụ-xóa-cuối-3. php
Hoặc thậm chí xóa năm ký tự cuối cùng khỏi chuỗi
- substr-ví dụ-xóa-last-5. php
Ví dụ trên sẽ trả về một chuỗi rỗng
Bạn cũng có thể sử dụng substr[]
để kiểm tra ký tự cuối cùng trong một chuỗi, như vậy
- chất nền-ví dụ-get-last-char. php
Làm thế nào về các ký tự nhiều byte? . Tuy nhiên, nhiều ký tự UTF-8 chiếm nhiều hơn một byte, được gọi là ký tự nhiều byte. Ví dụ: dấu trọng âm trên các ký tự như ä, é hoặc thậm chí là biểu tượng cảm xúc 🍏 chiếm hơn một byte
Hàm rtrim[]
0 và rtrim[]
1 trong substr[]
sẽ không xử lý các ký tự nhiều byte như mong đợi vì chúng giả định một byte cho mỗi ký tự
Hãy xem nó trong một ví dụ
- substr-multi-byte-issue. php
Trong ví dụ trên, rtrim[]
0 2 và rtrim[]
1 6 được cho là trả về rtrim[]
7. Tuy nhiên, giá trị trả về là rtrim[]
8. Lý do là ã là một ký tự nhiều byte và hàm substr[]
không biết về nó
May mắn thay, PHP có một giải pháp thay thế an toàn nhiều byte substr[]
. rtrim[]
1
Xóa ký tự cuối cùng bằng PHP rtrim[]
2
Một phương pháp khác để xóa ký tự cuối cùng khỏi chuỗi trong PHP là sử dụng hàm rtrim[]
3.
Cũng giống như substr[]
, chức năng này cũng chấp nhận một vị trí và độ lệch. Tuy nhiên, không giống như substr[]
- trả về một chuỗi con - rtrim[]
2 thay thế chuỗi con bằng một giá trị thay thế
Hãy làm cho nó rõ ràng với một ví dụ
- substr_replace-ví dụ. php
Trong ví dụ trên, rtrim[]
0 0 và rtrim[]
1 4 đề cập đến rtrim[]
9 trong chuỗi của chúng tôi. Và trong trường hợp này, rtrim[]
9 được thay thế bằng từ /api/v2
1
Kết quả là, đầu ra sẽ là. /api/v2
2
Bây giờ, nếu chúng ta có thể nhắm mục tiêu ký tự cuối cùng và thay thế nó bằng một chuỗi rỗng thì sao?
Chúng ta có thể. Hãy xem làm thế nào
- chất nền_replace-ví dụ-last-char. php
Chúng tôi đặt rtrim[]
0 thành -1 [ký tự cuối cùng] và thay thế nó bằng một chuỗi rỗng [/api/v2
4]. cứ thế
kết thúc
Như bạn thấy, PHP xử lý chuỗi rất tốt, nhờ các hàm chúng ta có thể sử dụng từ thư viện chuẩn