PHP cắt ký tự cuối cùng

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/v21

Kết quả là, đầu ra sẽ là. /api/v22

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/v24). 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

Làm cách nào để xóa 4 ký tự cuối cùng khỏi chuỗi trong PHP?

Phương pháp 4 – hàm rtrim . rtrim($string,'x');

Làm cách nào tôi có thể lấy phần cuối cùng của chuỗi trong PHP?

strrchr trả về phần của chuỗi sau và bao gồm cả ký tự đã cho, không phải chỉ mục số. Vì vậy, bạn sẽ muốn làm $last_section = substr(strrchr($string, '. '), 1); để lấy mọi thứ sau ký tự.