Hướng dẫn dùng str pos trong PHP

Hàm strpos() sẽ tìm kiếm vị trí đầu tiên của kí tự hoặc chuỗi con xuất hiện trong chuỗi nguồn. Hàm trả về số nguyên là vị trí đầu tiên xuất hiện của kí tự hoặc chuỗi con trong chuỗi nguồn, lưu ý là chuỗi sẽ bắt đầu từ vị trí 0, không phải 1.

Hướng dẫn dùng str pos trong PHP

Hướng dẫn dùng str pos trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú phápstrpos( $str, $char, $position);

Trong đó:

  • $str là chuỗi nguồn.
  • $char là kí tự hoặc chuỗi con cần tìm kiếm trong chuỗi nguồn.
  • $position là vị trí bắt đầu tìm kiếm, có nghĩa là hàm  strpos() sẽ bỏ qua các kí tự trước vị trí $position trong chuỗi nguồn.

Ví dụ

Code

$str = 'abcdefghimk';
$pos = strpos($str, 'd');
echo $pos;

Code

$str = 'abcdefghdiklm';
$pos = strpos($str, 'd');
$pos2 = strpos($str, 'd', 5);
echo $pos . "
";
echo $pos2;

Code

$str = 'abcdefghdiklm';
$char = 'dk';
$pos = strpos($str, $char);
if ($pos == false) {
	echo "kí tự '" .$char. "' không tồn tại trong chuỗi";
}

Kết quả

kí tự 'dk' không tồn tại trong chuỗi

Tham khảo: php.net

Bài viết này được đăng tại [free tuts .net]

Hàm strpos dùng để tìm vị trí xuất hiện đầu tiên của một chuỗi con trong chuỗi cho trước. Hàm này được áp dụng ở PHP 4, PHP 5, và PHP 7. Đây cũng là một trong những hàm được các lập trình viên sử dụng nhiều nhất khi lập trình PHP.

Lưu ý hàm strpos phân biệt hoa thường và là hàm an toàn nhị phân (binary-safe).

Tìm vị trí đầu tiên (tính theo số thứ tự) của $find trong $string.

int strpos ( string $string , mixed $find [, int $position = 0 ] )

Tham số

  • string: Chuỗi dùng để tìm kiếm chuỗi con.
  • find: Chuỗi con cần tìm trong chuỗi. Nếu chuỗi con không có dạng dữ liệu string (chuỗi) thì nó được chuyển sang một số nguyên (integer) và áp dụng như một giá trị thứ tự (số) của một ký tự.
  • position: Tham số tùy chọn (có thể có hoặc có thể không) định nghĩa vị trí sẽ bắt đầu tìm kiếm tính từ đầu chuỗi. Nếu giá trị offset là số âm, việc tìm kiếm sẽ bắt đầu từ số lượng ký tự tính từ cuối của chuỗi, tuy nhiên có thể trả về kết quả lỗi strpos(): Offset not contained in string on line…

Giá trị trả về

Giá trị trả về là vị trí (số nguyên – integer) của chuỗi cần tìm.

Ví dụ 1

Trong ví dụ này, bạn sẽ tìm vị trí chuỗi “b” trong chuỗi “abcdefg”, kết quả là vị trí thứ 1.

Ví dụ 2

Ví dụ sau tìm kiếm chuỗi “a” trong chuỗi “abcdef abcdef” với vị trí tìm thấy là 1. Do đó, kết quả của biến $post là 7 chứ không phải là 0.

Ví dụ 3

Ví dụ tìm kiếm số 123 trong chuỗi “abcdef123 abcdef”. Do kiểu dữ liệu số 123 khác với kiểu dữ liệu chuỗi ‘123’ trong chuỗi, do đó kết quả là rỗng.

Một số hàm liên quan

Ngoài ra, bạn cũng có thể sử dụng một số hàm liên quan như sau:

  • strrpos() – Tìm vị trí xuất hiện cuối cùng của một chuỗi con trong chuỗi (phân biệt hoa thường)
  • stripos() – Tìm vị trí xuất hiện đầu tiên của một chuỗi bên trong chuỗi (không phân biệt hoa thường)
  • strripos() – Tìm vị trí xuất hiện cuối cùng của một chuỗi con trong chuỗi (không phân biệt hoa thường)

Chuỗi là các dãy ký tự, giống như “Hoc PHP chuyen nghiep tai QTM”.

Nội dung chính

  • Toán tử nối chuỗi trong PHP
  • Tìm độ dài chuỗi trong PHP bằng strlen() trong PHP
  • Tìm ký tự hoặc chuỗi trong chuỗi – Hàm strpos() trong PHP
  • Đăng nhập

Ghi chú − Bạn sẽ tìm thấy các hàm xử lý chuỗi có sẵn trong PHP tại Hàm xử lý Chuỗi (String) trong PHP

Dưới đây là ví dụ về các chuỗi hợp lệ trong PHP.

$string_1 = "Vi du mot chuoi trong PHP";
$string_2 = "Hoc PHP chuyen nghiep tai QTM";
$string_0 = ""; // ví dụ một chuỗi không có ký tự nào

Khi sử dụng chuỗi với dấu nháy đơn, nó sẽ được đối xử như là các hằng, và in ra chính chuỗi đó. Trong khi sử dụng với dấu nháy kép, nó thay thế các biến với giá trị của chúng cũng như thông dịch các dãy ký tự cụ thể.

php
 $bien_chuoi = "name";
 $bien_chuoi_hang = 'Chuỗi $bien_chuoi sẽ không được in!\\n';
 
 print($bien_chuoi_hang);
 print "
"
; $bien_chuoi_hang = "Chuỗi $bien_chuoi sẽ được in!\\n"; print($bien_chuoi_hang); ?>

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

Không có giới hạn về độ dài của chuỗi, có thể dài tùy ý nếu bộ nhớ cho phép.

Các chuỗi được giới hạn bởi các dấu nháy kép được PHP xử lý bằng 2 cách sau đây:

  • Các chuỗi kí tự bắt đầu với dấu gạch chéo ngwọc (\) được thay thế bằng kí tự đặc biệt
  • Các tên biến (bắt đầu với $) được thay thế bằng biểu diễn chuỗi của giá trị của nó.Các quy tắc thay thế:
  • \n được thay thế bằng ký tự newline (dòng mới)
  • \r được thay thế bởi ký tự carriage-return, được hiểu là đưa con trỏ về đầu dòng nhưng không xuống dòng.
  • \t được thay thế bởi ký tự tab
  • $ được thay thế bằng một dấu $
  • \” được thay thế bằng một dấu nháy kép “
  • \\ được thay thế bằng một dấu gạch chéo ngược \

Toán tử nối chuỗi trong PHP

Để nối hai chuỗi với nhau, bạn sử dụng toán tử . (dấu chấm) trong PHP như sau:

php
 $string1="Web";
 $string2="QTM";
 
 echo $string1 . " " . $string2;
?>

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

Web QTM

Nếu bạn chú ý vào đoạn code trên, bạn sẽ thấy rằng, chúng ta đã sử dụng toán tử nối chuỗi hai lần. Đây là bởi vì chúng ta đã chèn một chuỗi thứ ba.

Giữa hai biến chuỗi, chúng ta thêm một chuỗi với một ký tự đơn, là một khoảng trống, để phân biệt hai biến.

Tìm độ dài chuỗi trong PHP bằng strlen() trong PHP

Hàm strlen() trong PHP được sử dụng để tìm độ dài của một chuỗi.

Ví dụ sau sẽ tìm độ dài của chuỗi “QTM Nhom!”:

php
 echo strlen("Web QTM!");
?>

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

8

Độ dài của một chuỗi thường được sử dụng trong vòng lặp hoặc các hàm khác, khi nó là quan trọng để biết khi nào chuỗi kết thúc (ví dụ: trong một vòng lặp, chúng ta muốn dừng vòng lặp sau ký tự cuối cùng của chuỗi).

Tìm ký tự hoặc chuỗi trong chuỗi – Hàm strpos() trong PHP

Hàm strops() được sử dụng để tìm một chuỗi hoặc ký tự bên trong một chuỗi.

Nếu một so khớp được tìm thấy, hàm này sẽ trả về vị trí của so khớp đầu tiên. Nếu không tìm thấy một so khớp nào, nó sẽ trả về FALSE.

Giờ chúng ta tìm chuỗi “QTM” trong chuỗi “Web QTM!”:

php
 echo strpos("Web QTM!","QTM");
?>

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

4

Như bạn thấy, vị trí của chuỗi “QTM” trong chuỗi trên là 4. Lý do là 4 mà không là 5, bởi vì vị trí đầu tiên của chuỗi là 0, chứ không phải là 1.

Đăng nhập