Hàm str_replace trong PHP là gì?

05/08/2022 - lượt xem
Chia sẻ
 
5/5 - (1 bình chọn)

Hàm str_replace()  là hàm tìm kiếm và thay thế các ký tự trong chuỗi. Hàm tương thích với PHP4, PHP5, PHP7. Hàm str_replace tương tự với với chức năng replace trong word hay các trình editor như Sublime text.

Cú pháp:

Cú pháp:   str_replace( $strSearch, $strReplace, $subject );

Trong đó: 

  • $strSearch Là kí tự, chuỗi kí tự hoặc mảng các chuỗi kí tự cần tìm kiếm và thay thế.
  • $strReplaceLà kí tự, chuỗi kí tự hoặc mảng các chuỗi kí tự để thay thế cho kí tự, chuỗi kí tự hoặc mảng kí tự tìm kiếm $strSearch.
  • $subject Là chuỗi kí tự hoặc mảng các chuỗi kí tự gốc được tìm kiếm và thay thế.

Hàm str_replace()  sẽ tìm kiếm các kí tự $strSearch trong chuỗi gốc $subject và thay thế chúng bằng chuỗi kí tự $strReplace.

Mô tả: 

  • Nếu $strSearch$strReplace là các mảng kí tự, hàm str_replace() sẽ lấy từng phần tử của mảng để tìm kiếm và thay thế chúng trong chuỗi $subject .
  • Nếu mảng kí tự thay thế $strReplace có ít phần tử hơn mảng kí tự tìm kiếm $strSearch thì phần tử của $strReplace tương ứng với phần tử của $strSearch sẽ có giá trị là một chuỗi rỗng.
  • Nếu $strSearch là một mảng các kí tự và $strReplace là một chuỗi kí tự thay thế, thì chuỗi $strReplace sẽ thay thế cho mọi phần tử trong mảng $strSearch.
  • Nếu $strReplace$strSearch là các mảng kí tự thì các phần tử của cả hai mảng sẽ được hàm str_replace() xử lý thực thi từ các phần tử đầu tiên đến hết mảng.
  • Hàm str_replace() có phân biệt chữ in hoa và in thường.

Kết quả trả về:

Kết quả trả về của hàm str_replace() là một chuỗi hoặc một mảng mới với các kí tự, chuỗi kí tự hoặc mảng kí tự đã được thay thế so với chuỗi, mảng kí tự ban đầu.

Ví dụ:

Ví dụ 1: Các tham số $strSearch, $strReplace, $subject đều là chuỗi (String):

<?php
$str = "Tìm hiểu kiến thức lập trình tại codetutam.com";
$strSearch = "lập trình";
$strReplace = "PHP";

$strNew = str_replace($strSearch, $strReplace, $str);

echo $strNew; 
// Kết quả: Tìm hiểu kiến thức PHP tại codetutam.com

Trong ví dụ trên ta đã chuỗi “lập trình” đã được thay thế bằng chuỗi “PHP”.

Ví dụ 2: Các tham số $strSearch, $strReplace, $subject đều là mảng (Array):

<?php
$subject = ['toi', 'dang', 'hoc lap trinh', 'tai codetutam.net'];
$search = ['toi', 'dang', 'hoc lap trinh'];
$replace   = ['ban', 'co', 'hoc php'];
$result = str_replace($search, $replace, $subject);
echo "<pre>";
   print_r($result);
echo "</pre>";

Kết quả:

<pre>Array
(
    [0] => ban
    [1] => co
    [2] => hoc php
    [3] => tai codetutam.net
)
</pre>

Trong ví dụ trên các phần tử trong mảng gốc $subject lần lượt được tìm kiếm với các kí tự trong mảng  $search và được thay thế bằng các phần tử trong mảng $replace .

Ví dụ 3: 

Ví dụ này mình tham khảo trên trang php.net với các tham số $strSearch, $strReplace là các mảng kí tự và $subject là một chuỗi:

<?php
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

Kết quả:

F

Các phần tử của mảng $search lần lượt tìm kiếm trong chuỗi $subject và được thay thế lần lượt bằng các phần tử trong mảng $replace và cuỗi cùng phần tử cuối mảng $search là E được thay thế bằng phần tử cuối mảng $replace là F, vậy sau cùng chỉ tồn phần tử F không bị thay thế.

Ví dụ 4: 

Tham số $search là mảng và $replace là chuỗi:

<?php
$subject = 'toi dang hoc, nghien cuu lap trinh tai codetutam.com';
$search = ['hoc', 'nghien cuu'];
$replace   = 'hoc tap';
$result = str_replace($search, $replace, $subject);
echo $result;

Kết quả:
toi dang hoc tap, hoc tap lap trinh tai codetutam.com

trong ví dụ trên lần lượt các phần tử của mảng $search được tìm kiếm và thay thế bằng chuỗi $replace .

Ví dụ 5: 

Tham số $replace  có ít phần tử hơn $search :

<?php
$subject = 'toi dang hoc, nghien cuu lap trinh tai codetutam.com';
$search = ['hoc', 'nghien cuu', 'lap trinh'];
$replace   = ['learn', 'research'];
$result = str_replace($search, $replace, $subject);
echo $result;

Trong ví dụ trên phần tử thứ 3 trong mảng $search là “lap trinh” đã được thay thế bằng một khoảng trắng vì phần thứ 3 tương ứng trong mảng  $replace không tồn tại.

Ví dụ 6: 

Đây là một ví dụ demo sử dụng hàm str_replace() với hàm json_decode() và hàm json_encode(), tham khảo trên trang php.net.

<?php
$search = "A";
$replace = "a";
$subject = array("A","B","C","D","E","F");
// $subject = "ABCDEF";

function str_replace_json($search, $replace, $subject){
     return json_decode(str_replace($search, $replace,  json_encode($subject)));
}
print_r( str_replace_json($search, $replace, $subject) );

Kết quả:

Nếu $subject là mảng kí tự:

Array
(
    [0] => a
    [1] => B
    [2] => C
    [3] => D
    [4] => E
    [5] => F
)

Nếu $subject là chuỗi kí tự:

aBCDEF

Kết luân:

Hi vọng với bài viết này các bạn hiểu rõ được hàm str_replace() trong PHP và các trường hợp sử dụng hàm này.

Nếu bạn thấy bài viết hay và có ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé.

Cảm ơn bạn đã ghé thăm codetutam.com.

 

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    5/5 - (1 bình chọn)

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm