Hàm strpos() trong PHP
Trần Thị Vân
- 1233
- 31/07/2025
Chức năng của Hàm strpos() trong PHP
Hàm strpos() trong PHP dùng để tìm vị trí xuất hiện lần đầu tiên của một chuỗi con nằm trong một chuỗi lớn, hàm này tính cả số ký tự có dấu và khoảng trắng, phân biệt cả chữ hoa và chữ thường, nên dùng trong chuỗi không dấu.
Cú pháp của Hàm strpos() trong PHP
$vị_trí_đầu_tiên = strpos("chuỗi_gốc", "chuỗi_con");
chuỗi_gốc: Chuỗi gốc.
chuỗi_con: Chuỗi con.
$vị_trí_đầu_tiên: Trả kết quả về vị trí đầu tiên của chuỗi con.
Ví dụ Hàm strpos() trong PHP
<?php
echo $vitri = strpos("DH09DT0315653348DH09DT", "DH09"); // Kết quả: 0
echo "<br>";
echo $vitri = strpos("DH09DT0315653348DH09DT", "09DT"); // Kết quả: 2
echo "<br>";
echo $vitri = strpos("DH09DT0315653348DH09DT", "0315653348"); // Kết quả: 6
echo "<br>";
echo $vitri = strpos("Web Mới xin chào quý khách, xin trân trọng! ", "xin"); // Kết quả: 10
echo "<br>";
echo $vitri = strpos("Web Mới xin chào quý khách, xin trân trọng!", "quý"); // Kết quả: 20
echo "<br>";
?>
Kết quả:
0
2
6
10
20
Những lưu ý khi sử dụng hàm strpos() trong PHP
strpos() khá đơn giản khi tìm một chuỗi bên trong chuỗi khác, nhưng kết quả trả về cần được xử lý đúng. Đặc biệt, vị trí bắt đầu từ 0 có thể khiến điều kiện kiểm tra bị hiểu sai nếu chỉ sử dụng phép so sánh thông thường.
Kiểm tra kết quả strpos() đúng cách khi vị trí trả về là 0
Khi chuỗi cần tìm xuất hiện ngay từ ký tự đầu tiên, strpos() trả về giá trị 0. Trong PHP, 0 được xem là giá trị false khi chuyển sang kiểu Boolean. Vì vậy, cách kiểm tra trực tiếp bằng if (strpos(...)) có thể khiến chương trình tưởng rằng chuỗi không được tìm thấy.
Để phân biệt rõ hai trường hợp tìm thấy tại vị trí 0 và không tìm thấy, nên sử dụng phép so sánh nghiêm ngặt với false:
$text = "PHP là ngôn ngữ lập trình";
$position = strpos($text, "PHP");
if ($position !== false) {
echo "Đã tìm thấy tại vị trí: " . $position;
} else {
echo "Không tìm thấy chuỗi cần tìm";
}
Cách này vẫn xác nhận chính xác trường hợp kết quả bằng 0, đồng thời tránh nhầm lẫn với giá trị false khi chuỗi không xuất hiện.
Phân biệt strpos() với strrpos() và strstr()
Các hàm tìm kiếm chuỗi trong PHP có cách trả về kết quả khác nhau. strpos() phù hợp khi cần biết vị trí xuất hiện đầu tiên của chuỗi con. Nếu muốn tìm vị trí xuất hiện cuối cùng, có thể sử dụng strrpos().
Trong khi đó, strstr() không trả về vị trí mà trả về phần chuỗi bắt đầu từ đoạn được tìm thấy. Vì vậy, nên chọn hàm dựa trên kết quả mà chương trình thực sự cần thay vì sử dụng chúng thay thế cho nhau.
Xử lý trường hợp chuỗi cần tìm không tồn tại
Nếu không tìm thấy chuỗi cần tìm, strpos() trả về false. Đây là trường hợp cần được xử lý trước khi sử dụng kết quả như một vị trí số hoặc đưa vào phép tính khác.
Cách an toàn là kiểm tra kết quả bằng !== false. Nếu chỉ cần xác định chuỗi có tồn tại hay không, có thể dùng điều kiện này mà không cần quan tâm đến vị trí cụ thể.
$content = "Học PHP cùng Web Mới";
$position = strpos($content, "JavaScript");
if ($position === false) {
echo "Không tìm thấy chuỗi";
} else {
echo "Chuỗi được tìm thấy tại vị trí: " . $position;
}
Việc kiểm tra rõ giá trị trả về giúp hạn chế lỗi logic, đặc biệt trong các điều kiện xử lý dữ liệu đầu vào, tìm từ khóa hoặc kiểm tra nội dung trước khi thực hiện bước tiếp theo.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm strpos() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *