Categories PHP-MySQL

Các hàm xử lý chuỗi trong PHP

Các hàm xử lý chuỗi trong PHP là một trong các hàm quan trọng không thể thiếu khi bạn muốn làm việc với các ký tự. Sau đây blog Kiến càng sẽ cùng bạn tìm hiểu các hàm cơ bản nhất.


Lấy độ dài ký tự của một chuỗi

Ví dụ:

<?php echo strlen("Duc Anh"); // kết quả của đoạn code này là 7 bao gồm cả khoảng trống?>

Với tiếng Việt có dấu, số ký tự tăng thêm tương ứng với số ký tự phải gõ, ví dụ:

<?php echo strlen("Duc Anh"); // kết quả không phải 7, mà là 10, vì Đức Anh, gõ theo kiểu Telex sẽ là DDuwcs Anh?>

Đếm số từ trong chuỗi

Ví dụ:

<?php echo str_word_count("Nguyen Duc Anh"); // cho kết quả là 3?>

Tuy nhiên với ký tự có dấu lại khác:

<?php echo str_word_count("Nguyễn Đức Anh"); // cho kết quả là 6?>

Đảo chuỗi

Ví dụ:

<?php echo strrev("Duc Anh"); // cho kết quả là hnA cuD?>

Với ký tự có dấu kết quả bị lỗi:

<?php echo strrev("Đức Anh"); // kết quả bị lỗi ở phần có dấu hnA c�����?>

Tìm kiếm từ hoặc dãy ký tự trong chuỗi

Hàm này dùng để tìm kiếm xem có từ nào đó hoặc dãy ký tự nằm trong chuỗi hay không? nếu có nó sẽ trả về kết là số nguyên dương (là số ký tự đứng trước từ tìm thấy), nếu không, nó sẽ trả về kết quả là FALSE.

Ví dụ:

<?php echo strpos("Duc Anh dep trai", "dep trai"); // kết quả sẽ là 8, điều này có nghĩa là từ "dep trai" có nằm trong chuỗi trên và có 8 ký tự đứng trước nó bao gồm cả ký tự trống. PS: câu này mô tả thực tế về tôi?>

Nếu từ cần tìm nằm ngay đầu, kết quả trả về sẽ 0, ví dụ:

<?php echo strpos("Duc Anh dep trai", "Duc Anh"); // bạn sẽ nhận được kết quả là 0?>

Với ký tự có dấu, hàm vẫn hoạt động tốt, chỉ khác là số ký tự sẽ thay đổi giống như hàm strlen().

Ví dụ:

<?php echo strpos("Đức Anh đẹp trai", "đẹp trai"); // sẽ cho kết quả là 11, chứ không phải 8. Nếu mục đích là tìm xem có từ đẹp trai hay không, thì 8 hay 11 có cùng ý nghĩa.?>

Thay thế từ trong chuỗi bằng từ khác

Ví dụ:

<?php echo str_replace("Anh", "Hùng", "Nguyễn Đức Anh"); // cho kết quả là: Nguyễn Đức Hùng?>

Cú pháp dễ nhận thấy qua ví dụ: từ cần bỏ đi là Anh, từ được thêm mới là Hùng, chuỗi cần đối chiếu là: Nguyễn Đức Anh

Nếu từ cần bỏ đi không tìm thấy trong chuỗi thì chuỗi đó vẫn giữ nguyên, ví dụ:

<?php echo str_replace("Anfd", "Hùng", "Nguyễn Đức Anh"); // vẫn cho kết quả là Nguyễn Đức Anh vì Anfd không tồn tại trong chuỗi?>

Trường hợp này thì sao, bạn hãy thử đoán kết quả nhé:

<?php echo str_replace("An", "Hùng", "Nguyễn Đức Anh");?>

Không như dự đoán của tôi là không có gì thay đổi, thực tế chuỗi vẫn thấy từ An và kết quả của đoạn trên sẽ là: Nguyễn Đức Hùngh

Back to Top