post-image

Các hàm xử lý chuỗi trong PHP

Tổng quan

Chuỗi là một khái niệm quen thuộc đối với các lập trình viên PHP. Vậy có những hàm xử lý String nào, chúng ta cùng tìm hiểu nhé.

chop ()

PHP chop (): Xóa kí tự phía bên phải

 <?php
    $str = "I am Lam";
    echo $str . "<br>";
    echo chop($str,"Lam");
 ?>

 

Kết quả:

  • Cho một biến $str chứa giá trị: “I am Lam”

  • Thực hiên in ra với echo:

    • Lần in thứ nhất in ra đầy đủ các kí tự.
    • Lần in thứ hai kết hợp hàm chop() với tham số truyền vào là biến $str và các kí tự phía ngoài cùng bên phải cần xóa.
  • Tương tự hàm chop() là hàm rtrim().

ltrim ()

PHP ltrim (): Xóa các kí tự bên trái

<?php
$str = "I am Lam";
echo $str . "<br>";
echo ltrim($str,"I");
?> 

Kết quả:

Hàm này ngược lại với hàm chop(), nó sẽ xóa đi kí tứ bên trái chuỗi và lưu ý rằng chỉ có thể tính từ các kí tự đứng đầu trong String.

Chunk_split ()

PHP chunk_split (): Chia chuỗi thành các chuỗi nhỏ.

<?php
    $str = "I am Lam";
    echo chunk_split($str,1,".");
?> 

Kết quả:

  • Cho một biến $str chứa giá trị: “I am Lam”
  • Thực hiện in ra với echo: gọi hàm chunk_split() với 3 tham số đầu vào, tham số đầu tiên (bắt buộc) truyền vào biến string, tham số thứ 2 và tham số thứ 3 (Không bắt buộc) là sau bao nhiêu chữ thì chèn vào nội dung trong ngoặc kép.

PHP lcfirst (): Chuyển kí tự đầu tiên thành chữ thường

<?php
echo lcfirst("I am Lam");
?> 

Kết quả:

  • Không có gì để nói nhiều về hàm này nhỉ 😉 Đơn giản là truyền vào một string và từ nào đứng đầu string là chữ hoa thì nó ép sang chữ thường.

PHP similar_text (): Đếm số kí tự trùng nhau giữa hai chuỗi

<?php
echo similar_text("I am Lam","I am Linh");
?>

Kết quả trả về: 6 kí tự giống nhau.

PHP strcasecmp (): So sánh không phân biệt chữ hoa chữ thường

<?php
echo strcasecmp("I am Lam","I AM LAM");
?>

<p>Nếu hàm trả về 0, hai chuỗi so sánh không có khác biệt.</p>

Kết quả:

  • Và nếu như hai string có sự khác biệt thì hàm sẽ trả về số lượng kí tự khác biệt trong string.

PHP strchr (): Tìm kí tự trong chuỗi, trả về kí tự đó và phần còn lại

<?php
echo strchr("I am Lam, hello Lam","am");
?>

Kết quả:

  • Hàm strchr() sẽ tìm kí tự trong String chúng ta khai báo, nếu tìm thấy nó sẽ thực hiện trả về kí tự đó và toàn bộ phần chuỗi phía sau kí tự vừa tìm được.

PHP strcmp (): So sánh hai chuỗi và phân biệt chữ hoa chữ thường

<?php
// 2 chuỗi bằng nhau
echo strcmp("I am Lam!","I am Lam!") . "<br>"; // => 0

//Phân biệt chữ hoa chữ thường và khi hoán đổi vị trí chuỗi
echo strcmp("i am lam!","I AM LAM!") . "<br>"; // => 32
echo strcmp("I AM LAM!","i am lam!") . "<br>"; // => -32

//Giảm độ dài ở một chuỗi và khi hoán đổi vị trí chuỗi
echo strcmp("I am Lam!","I am") . "<br>"; // => 5
echo strcmp("I am","I am Lam!") . "<br>"; // => -5

//Tăng độ dài ở một chuỗi và khi hoán đổi vị trí chuỗi
echo strcmp("I am Lam nhảm","I am Lam") . "<br>"; // => 7
echo strcmp("I am Lam","I am Lam nhảm") . "<br>"; // => -7
?> 

Kết quả:

  • Hàm strcmp () phân biệt chữ hoa chữ thường, nếu string thứ hai viết thường, kết quả trả về luôn là -32 và ngược lại

  • Tóm lại, Hàm này trả về:

    • 0 – nếu hai string bằng nhau
    • <0 – nếu string1 nhỏ hơn string2
    • >0 – nếu string1 lớn hơn string2

PHP strcspn (): In ra số kí tự đứng trước kí tự được tìm kiếm.

<?php
echo strcspn("Hello, I am Lam","l");
?>

Kết quả: 2

  • strcspn() tìm kiếm kí tự trong ngoặc kép từ đầu chuỗi. Nó chỉ tìm đúng một lần và in ra số lượng các kí tự đứng trước nó mà thôi.

PHP stristr (): In ra số kí tự đứng sau kí tự được tìm kiếm.

<?php
echo stristr("Hello Lam!","ll");
?>

Kết quả:

  • Nếu strcspn() in ra các kí tự đứng trước kí tự được tìm kiếm thì stristr() sẽ in ra các kí tự đứng sau kí tự được tìm kiếm

PHP strlen (): Trả về độ dài chuỗi

<?php
echo strlen("Lam");
?>

Kết quả: 3

  • Tên cũng như cách thức hoạt động, hàm strlen() đếm và trả về số kí tự trong String.

PHP strpbrk (): Tìm kiếm một chuỗi cho bất kì kí tự nào được chỉ định

<?php
echo strpbrk("Hello Lam","ml");
?>

Kết quả:

  • Truyền vào bất kì kí tự gì bạn muốn tìm kiếm trong string, hàm strpbrk() sẽ duyệt từ đầu string, kí tự bạn muốn tìm xuất hiện lần đầu ở đâu nó sẽ in nguyên các kí tự phía sau kí tự được tìm kiếm đó.

PHP strrev (): Đảo ngược

<?php
echo strrev("Hello Lam!");
?>

Kết quả: !maL olleH

PHP strtolower (): Chuyển tất cả kí tự trong chuỗi thành chữ thường

<?php
echo strtolower("Hello LAM");
?>

Kết quả: hello lam

PHP strtoupper (): Chuyển tất cả kí tự trong chuỗi thành chữ hoa

<?php
echo strtoupper("Hello lam!");
?> 
Kết quả: HELLO LAM!

PHP substr (): Trả về chuỗi sau chỉ số cho trước

<?php
echo substr("Hello Lam",6);
?>

Kết quả: Lam

  • Chỉ số index bắt đầu từ 0, đếm từ đầu string đến kí tự thứ 6 là chữ L, vậy hàm substr() in ra kết quả Lam.

PHP substr_count (): Đếm số lần chuỗi con xuất hiện trong chuỗi cho trước.

<?php
echo substr_count("Hello Lam. Lam is fine","Lam");
?>

Kết quả: 2

  • Rất rõ ràng và dễ hiểu, nhìn vào chuỗi đầu tiên, chuỗi con “Lam” xuất hiện 2 lần trong chuỗi cha => kết quả trả về là 2.

PHP substr_replace(): Thay thế chuỗi ở một chỉ số index được chỉ định.

<?php
echo substr_replace("Hello Lam","Linh",6); 
?>

Kết quả: Hello Linh

  • Theo đoạn code trên, đếm index đến số 6 thì thay chuỗi con “Linh” vào chuỗi cha, vậy là chữ Lam sẽ mất đi, thay vào đó là chữ Linh.

PHP trim (): Xóa kí tự sát đầu và sát cuối.

<?php
$str = "Hello Lam!";
echo $str . "<br>";
echo trim($str,"Ham!");
?>

Kết quả:

  • Hàm trim() sẽ tìm kí tự đầu và cuối và thực hiện xóa từ những kí tự đó, nếu bạn nhập những kí tự ở giữa thì nó chịu, không xử lý được nhé 😆

PHP ucfirst (): chuyển đổi ký tự đầu tiên của một chuỗi thành chữ hoa

<?php
echo ucfirst("hello lam!");
?> 

Kết quả: Hello lam

  • Xin nhắc lại là chỉ kí tự đầu tiên trong chuỗi thôi nhé!

PHP ucwords (): chuyển đổi ký tự đầu tiên của mỗi từ trong chuỗi thành chữ hoa

<?php
echo ucwords("hello lam");
?> 

Kết quả: Hello Lam

  • Mỗi kí tự bắt đầu mỗi từ đều sẽ được chuyển thành chữ hoa.

Nguồn: https://viblo.asia/p/lession-7-php-xu-ly-string-trong-php-Az45bPWLZxY

Leave a Reply

Your email address will not be published. Required fields are marked *