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ế.$strReplace
Là 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
và$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
và$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.