Tìm kiếm chuỗi trong PHP (strpos) | Laptrinhcanban.com

Tìm kiếm chuỗi trong PHP (strpos)

Hướng dẫn cách tìm kiếm chuỗi trong PHP. Bạn sẽ học được cách tìm chuỗi trong chuỗi PHP bằng các hàm có sẵn sau bài học này.

Chúng ta có 3 phương pháp để tìm kiếm chuỗi trong PHP như sau:

  • Tìm chuỗi con xuất hiện đầu tiên từ đầu chuỗi PHP (hàm strpos )
  • Tìm chuỗi trong chuỗi trong PHP từ vị trí bất kỳ bằng hàm strpos
  • Tìm vị trí xuất hiện thứ n của chuỗi con trong chuỗi PHP

Tìm kiếm chuỗi trong PHP bằng hàm strpos

Chúng ta sử dụng hàm strpos trong PHP để tìm vị trí xuất hiện đầu tiên của chuỗi con trong chuỗi PHP, tính từ đầu chuỗi với cú pháp sau đây:

strpos ($str, $sub )`

Trong đó $sub là chuỗi con cần tìm trong chuỗi $str.

Kết quả trả về sẽ là index của vị trí xuất hiện đầu tiên của $sub, tính từ đầu chuỗi $str. Và nếu như $sub không tồn tại trong $str thì hàm strpos trong PHP sẽ trả về giá trị false.

Sau đây hãy cùng xem các ví dụ cụ thể sử dụng hàm strpos() để tìm chuỗi trong chuỗi PHP như sau:

Ví dụ 1:

$mystring = 'abcd';
$findme = 'bc';
$pos = strpos($mystring, $findme);
echo $pos; //1

Trong ví dụ này, chuỗi con bc xuất hiện ở vị trí index bằng 1, nên index đó được trả về.

Ví dụ 2:

echo strpos("Good School", "oo");
//> 1

ở ví dụ này, có 2 chuỗi con oo trong chuỗi ban đầu, tuy nhiên lần xuất hiện đầu tiên tính từ đầu chuỗi Good School của nó là tại vị trí có index là 1, do đó hàm strpos trong PHP sẽ trả về kết quả là 1 mà thôi.

Tìm chuỗi trong chuỗi trong PHP từ vị trí bất kỳ bằng hàm strpos

Cúng bằng cách sử dụng hàm strpos() với cú pháp nâng cao, chúng ta có thể chỉ định vị trí bắt đầu tìm chuỗi con trong chuỗi PHP.

Cú pháp sử dụng sẽ là:

strpos ($str, $sub, $start )`

Trong đó $sub là chuỗi con cần tìm trong chuỗi $str, và $start là index của vị trí bắt đầu tìm chuỗi con trong chuỗi nguồn.

Ví dụ

echo strpos("Good School", "oo", 3);
//> 4

Trong ví dụ này, vị trí tìm kiếm ký tự bắt đầu từ index bằng 3 (từ chữ d) nên kết quả, vị trí của chuỗi con oo thứ 2 đã được trả về.

Tìm vị trí xuất hiện thứ n của chuỗi con trong chuỗi PHP

Trong PHP không tồn tại phương pháp trực tiếp nào để giúp chúng ta tìm vị trí xuất hiện thứ n của chuỗi con trong chuỗi PHP. Do đó chúng ta cần phải tự viết phương pháp riêng để giải quyết bài toán này.

Ý tưởng ở đây là dùng vòng lặp để cắt lần lượt các chuỗi con có độ dài bằng với chuỗi cần tìm, rồi so sánh với chuỗi cần tìm cho đến khi tìm thấy lần xuất hiện thứ n của chuỗi đó trong chuỗi nguồn.

Chúng ta có thể tạo một hàm như thể để sử dụng trong chương trình như sau:

function findString( $str, $sub,$n) {
$count=0;
for ($i = 0; $i < mb_strlen($str); ++$i) {
//Cắt chuỗi con từ chuỗi ban đầu có cùng độ dài với chuỗi caan
//Sau đó so sánh chuỗi con này với chuỗi cần thay thế để tìm ra vị trí chuỗi cần thay thế
if (substr($str, $i, mb_strlen($sub) ) == $sub) {
$count += 1;
if ($count == $n){
$count = $i;
break;
}
}
}

return $count;
}

Trong đó các tham số sử dụng trong hàm là

  • str: chuỗi nguồn
  • sub: chuỗi con cần tìm
  • n : vị trí thứ n cần tìm của chuỗi sub trong chuỗi str ban đầu.

Ví dụ, chúng ta gọi hàm trên để tìm vị trí xuất hiện thứ n của chuỗi con oo trong chuỗi Good School như sau:

echo findString("Good School", "oo", 1);
//> 1

echo findString("Good School", "oo", 2);
//> 8

Trong hàm có sử dụng tới phương thức substr cắt chuỗi con từ chuỗi ban đầu.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn các cách tìm kiếm chuỗi trong PHP rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về PHP trong các bài học tiếp theo.

//Sửa mở bài tìm kiếm ký tự

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.