Hướng dẫn dùng mojibake converter trong PHP
Chế lại bánh xe là dở hơi, mất công, và kém hiệu quả. Ý tôi là việc viết các hàm mà PHP có thể có sẵn. Để dự phòng trường hợp đó, hôm nay tôi sẽ thử tìm hiểu mấy hàm xử lý chuỗi của PHP có hỗ trợ tiếng Việt cũng như hầu hết các ngôn ngữ không phải phương Tây khác.
Hàm này dùng để cắt chuỗi. Cấu trúc của nó như sau:
Ví dụ:
g ở vị trí số 1 (biến
Tương tự nếu Nếu Ví dụ:
Ở đây có nghĩa là lấy 3 ký tự tính từ cuối. Nếu
Ở ví dụ trên nó sẽ lấy ký tự thứ 6, tức là khoảng trắng, và cắt đi 3 ký tự cuối, do vậy còn mỗi từ ở giữa. 2. Hàm Dùng để chuyển tất cả ký tự về dạng viết thường. Cú pháp của nó như sau:
Ví dụ:
Tôi hay dùng hàm này khi phải xử lý phức tạp về chuỗi, chuyển nó thống nhất về ký tự thường sẽ giúp mã đơn giản hơn, sau khi đạt được kết quả cuối cùng sẽ chuyển về dạng tiêu chuẩn. Ví dụ như trường hợp xử lý họ tên. 3. Hàm Ngược lại với hàm trên, nó dùng để chuyển tất cả ký tự về dạng viết HOA. Cú pháp của nó như sau:
Các giải thích thì cũng tương tự như mục 2. Ví dụ:
Hàm này có lẽ ít dùng trong thực tế, vì kiểu văn bản toàn hoa rất khó chịu. 4. Hàm Cũng liên quan đến việc chuyển đổi chữ hoa, chữ thường với rất nhiều tùy chọn. Cú pháp của nó như sau:
Trong đó cái Ví dụ:
Với mode Các mode khác bao gồm:
5. Hàm Dùng để đếm số lượng ký tự của một chuỗi. Cú pháp:
Ví dụ:
Bạn chú ý là các khoảng trống giữa ký tự cũng được tính, do vậy nếu từ dư khoảng trắng, số lượng ký tự sẽ tăng thêm so với thực tế. Nếu bạn muốn chuỗi có khoảng trắng đúng chuẩn (tức là mỗi từ chỉ cách nhau một khoảng trắng), bạn có thể dùng lệnh sau để khử khoảng trắng dư:
6. Hàm Dùng để lấy mảng (array) các ký tự của một chuỗi. Cú pháp của nó như sau:
Ví dụ:
Sẽ cho kết quả là một mảng gồm 14 phần tử:
Mỗi phần tử là một ký tự trong chuỗi, bao gồm cả phần tử chỉ khoảng cách. Ở đây bạn có thể thấy nếu
Thì kết quả sẽ là:
Phần tử ở vị trí số 2 và 3 dù bề ngoài có 2 ký tự nhưng thực ra là 3, vì nó bao gồm cả khoảng trắng nữa. Phần tử cuối cùng thì đúng có 2 ký tự. Vì 14/3 thì kiểu gì cũng có nhóm thiếu 1. Một lệnh
7. Hàm Dùng để tìm vị trí xuất hiện đầu tiên của một chuỗi trong chuỗi kia. Cú pháp:
Ví dụ ở đây là tìm vị trí xuất hiện của chuỗi mẫu “Đức” trong chuỗi “Nguyễn Đức Anh”:
Dĩ nhiên
Nếu mẫu tìm kiếm xuất hiện nhiều lần trong chuỗi, thì chỉ vị trí đầu tiên được trả về, ví dụ:
Chuỗi gốc cần tìm mẫu có 3 ký tự n, nhưng chữ đầu tiên là viết hoa nên so sánh với mẫu là không khớp (câu lệnh có phân biệt chữ hoa, chữ thường). 2 chữ n còn lại phù hợp với mẫu. Chữ n đầu tiên ở vị trí số 5 là kết quả được trả về. Ngược lại với hàm Chẳng hạn với ví dụ về ký tự n kể trên nó sẽ ra kết quả là 12:
Nếu mẫu tìm kiếm chỉ xuất hiện duy nhất một lần trong chuỗi thì “tình đầu cũng là tình
cuối”, do vậy
Lưu ý với cả 2 hàm này là nếu ký tự đầu tiên nó sẽ trả về bị trí 0, còn nếu không tìm thấy nó trả về
Muốn sửa chúng ta chỉ cần chỉ rõ điều kiện chính xác của biến $n:
Phần một về chuỗi tạm dừng ở đây, hy vọng sớm gặp lại các bạn trong bài viết khác. |