Hàm strpos() trong PHP

Hàm strpos() trong PHP
Hàm strpos() trong PHP

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

Chạy Thử

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í 0khô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
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm strpos() trong PHP
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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !