Hàm strpos() trả về giá trị là vị trí của chuỗi con trong một chuỗi (nếu tìm thấy hàm sẽ trả về vị trí tìm thấy chuỗi con và trả về giá trị false nếu không tìm thấy. Trong trường hợp chuỗi con xuất hiện nhiều lần trong chuỗi hàm sẽ trả về giá trị là vị trí đầu tiên tìm thấy (Có phân biệt kí tự HOA hoặc thường). Bạn cũng có thể chỉ định cho nó bắt đầu tìm kiếm từ vị trí nào
Cú pháp:
strpos(string $str, string $substr, [int $num]);Trong đó:
- $str là chuỗi mẹ cho trước
- $substr là chuỗi con cần tìm vị trí trong $str.
- $num là vị trí bắt đầu tìm chuỗi con từ đó. VD: $num =7 thì hàm bắt đầu tìm kiếm trong khoảng từ vị trí thứ 7 (đếm từ đầu chuỗi) đến cuối chuỗi
Ví dụ 1:
echo strpos('Tu hoc PHP don gian den PHP nang cao','PHP');hoặc
echo strpos('Tu hoc PHP don gian den PHP nang cao','PHP', 0);Hoạt động của 2 ví dụ trên là tương đương nhau, và kết quả đều là: 7
(Chú ý: nếu ta không điền vị trí bắt đầu tìm kiếm hoặc đặt là 0 sẽ giống nhau, khi đó nó sẽ tìm từ đầu chuỗi đến cuối chuỗi)
Ví dụ 2:
echo strpos('Tu hoc PHP don gian den PHP nang cao','PHP', 7);
Kết quả là: 24
Hàm stripos() về cơ bản là giống hàm strpos(). Nhưng khác ở chỗ là hàm stripos() không phân biệt kí tự HOA hay thường.
Cú pháp:
stripos(string $str, string $substr, [int $num]);Trong đó:
- $str là chuỗi mẹ cho trước.
- $substr là chuỗi con cần tìm vị trí trong chuỗi $str.
- $num là vị trí được chỉ định để bắt đầu tìm kiếm từ đó.
Ví dụ 3:
$str = 'Tu hoc PHP don gian den PHP nang cao';Kết quả: 7
$substr = 'php';
echo stripos($str, $substr);
Ví dụ 4:
$str = 'Tu hoc PHP don gian den PHP nang cao';Kết quả: 24
$substr = 'pHp';
echo stripos($str, $substr, 11);
Chú ý trong ví dụ 3 và ví dụ 4 này thì $substr = 'pHp' hay $substr = 'PHp'... thì đều tương tự nhau
Hàm strrpos() trả về vị trí xuất hiện cuối cùng của chuỗi con. Về cơ bản hoạt động giống hàm strpos() nhưng trong trường hợp chuỗi con xuất hiện nhiều lần thì nó sẽ trả về vị trí cuối cùng tìm thấy. (Có phân biệt kí tự HOA hay thường).
Cú pháp:
strrpos(string $str, string $substr, [int $num]);Trong đó:
- $str là chuỗi mẹ cho trước.
- $substr là chuỗi con cần tìm vị trí trong chuỗi $str.
- $num là vị trí được chỉ định để bắt đầu tìm kiếm từ đó. $num có cả giá trị âm và dương.
+ Là giá trị dương sẽ tính như bình thường từ đầu chuỗi. VD: $num = 7 thì hàm sẽ bắt đầu tìm kiếm trong khoảng từ vị trí thứ 7 (tính từ đầu chuỗi) đến cuối chuỗi.
+ Ngược lại là giá trị âm sẽ tính giá trị đó từ cuối chuỗi. VD: $num = -5 thì hàm sẽ tìm kiếm trong khoảng từ đầu chuỗi đến vị trí thứ 5 đếm từ cuối chuỗi.
Ví dụ 6:
$str = 'Tu hoc PHP don gian den PHP nang cao';Kết quả: 24
$substr = 'PHP';
echo strrpos($str, $substr);
Ví dụ 7:
$str = 'Tu hoc PHP don gian den PHP nang cao';Kết quả: 24
$substr = 'PHP';
echo strrpos($str, $substr, 10);
Ví dụ 8:
$str = 'Tu hoc PHP don gian den PHP nang cao';Kết quả: 7
$substr = 'PHP';
echo strrpos($str, $substr, -15);
Hàm strripos() về cơ bản hoạt động giống hàm strrpos nhưng không phân biệt kí tự HOA hay thường.
Ví dụ 9:
$str = 'Tu hoc PHP don gian den PHP nang cao';Kết quả: 24
$substr = 'php';
echo strripos($str, $substr);
Ví dụ 10:
$str = 'Tu hoc PHP don gian den PHP nang cao';Kết quả: 7
$substr = 'phP';
echo strripos($str, $substr, -15);
Chú ý: khi sử dụng các hàm này để so sánh nên dùng so sánh tuyệt đối (===, !==), vì trong một vài trường hợp nó sẽ không chạy theo ý bạn. Ví dụ dưới đây sẽ giúp bạn hiểu hơn về điều này.
$str = 'agoHAdgoajdasEAgae';Kết quả sẽ là: Khong tim thay "a" trong chuoi "agoHAdgoajdasEAgae"
$substr = 'a';
if(strpos($str, $substr)==false) echo 'Khong tim thay "'.$substr.'" trong chuoi "'.$str.'"';
else echo 'Tim thay "'.$substr.'" o vi tri thu '.strpos($str, $substr).' trong chuoi "'.$str.'"';
Rõ ràng là sai vì a xuất hiện mấy lần trong chuỗi.
Lý do là hàm đã tìm thấy "a" ở vị trí số và trả về giá trị là 0. Mà trong PHP 0=false (0 đồng nghĩa với false), vậy khi bạn so sánh điều kiên strpos($str, $substr)==false hàm if sẽ trả về giá trị là đúng (true). Trong trường hợp này bạn phải so sánh tuyệt đối như sau:
$str = 'agoHAdgoajdasEAgae';Kết quả sẽ là: Tim thay "a" o vi tri thu 0 trong chuoi "agoHAdgoajdasEAgae"
$substr = 'a';
if(strpos($str, $substr)===false) echo 'Khong tim thay "'.$substr.'" trong chuoi "'.$str.'"';
else echo 'Tim thay "'.$substr.'" o vi tri thu '.strpos($str, $substr).' trong chuoi "'.$str.'"';
Các bạn hãy thay các thông số trong từng ví dụ để hiểu rõ hơn về từng hàm nhé.
ui cai nay la php ma
Trả lờiXóa