Cú phápCú pháp: Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Trong đó:
Hàm Mô tả
Kết Quả trả vềKết quả trả về của hàm Bài viết này được đăng tại [free tuts .net] Ví dụ
Code $result = str_replace('lap trinh', 'php', 'hoc lap trinh tai freetuts.net'); echo $result; kết quả hoc php tai freetuts.net chuỗi 'lap trinh' đã được thay thế bằng chuỗi 'php'.
Code $subject = ['toi', 'dang', 'hoc lap trinh', 'tai freetuts.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ả Array ( [0] => ban [1] => co [2] => hoc php [3] => tai freetuts.net ) các phần từ trong mảng
Code $subject = 'toi dang hoc, nghien cuu lap trinh tai freetuts.net'; $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 freetuts.net tất cả các phân tử trong mảng
Code $subject = 'toi dang hoc, nghien cuu lap trinh tai freetuts.net'; $search = ['hoc', 'nghien cuu', 'lap trinh']; $replace = ['learn', 'research']; $result = str_replace($search, $replace, $subject); echo $result; Kết quả toi dang learn, research tai freetuts.net bạn có thể thấy phần tử thứ 3 của mảng Kết luận: qua các ví dụ trên hi vọng các bạn đã nắm được định nghĩa và cách xử dụng trong từng trường hợp của hàm Trong bài này chúng ta tìm hiểu một hàm khá giống với hàm str_replace đó là hàm preg_replace. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. 1. Hàm preg_replace trong PHPHàm preg_replace dùng để replace một chuỗi nào đó khớp với đoạn Regular Expression truyền vào. Hàm này có chức năng tương tự như str_replace nhưng có sự khác biệt là một bên dùng regex một bên không dùng. Cú pháp: Trong đó: Bài viết này được đăng tại [free tuts .net]
Kết quả trả về của hàm preg_replace là chuỗi đã được replace. 2. Ví dụ hàm preg_relace trong PHPVí dụ 1: Replace chuỗi $partern = '/hi/'; $subject = 'hi everybody, hi there'; $replacement = 'hello'; echo preg_replace($partern, $replacement, $subject); Kết quả xuất ra màn hình là chuỗi Ví dụ 2: Xóa thẻ h2 trong chuỗi Nhận xét: Ta thấy để xóa thẻ Cách
1: Dùng toán tử OR trong Regular Expression, tức là sẽ kiểm tra nếu là thẻ đóng hoặc thẻ mở thì sẽ bị replace thành ký tự trống. Chuỗi regex sẽ như sau $partern = '/(<h2>)|(<\/h2>)/'; $subject = '<h2>Welcome to freetuts.net</h2>'; $replacement = ''; echo preg_replace($partern, $replacement, $subject); Các bạn chạy lên và dùng firebug soi sẽ thấy mất thẻ h2. Cách 2: Dùng toán tử kiểm tra có hoặc không đó là dấu Các bạn thấy thẻ mở $partern = '/(<\/?h2>)/'; $subject = '<h2>Welcome to freetuts.net</h2>'; $replacement = ''; echo preg_replace($partern, $replacement, $subject); Chạy lên kết quả tương đương như cách 1. Ví dụ 3: Dùng Regular Expression xóa tất cả những thẻ html (h2, h2, h3, h4, h5) của một đoạn text Nếu không dùng hàm Ý tưởng: Ở ví dụ 2 ta đã xóa được một thẻ h2, như vậy muốn xóa các thẻ khác thì chỉ cần copy và thay đổi giá trị thẻ là được, cách làm như sau: $subject = '<h2>This is h2</h2><h2>This is h2</h2><h3>This is h3</h3><h4>This is h4 </div><h5> This is h5 </h5>'; // H1 $subject = preg_replace('/<\/?h2>/', '', $subject); // H2 $subject = preg_replace('/<\/?h2>/', '', $subject); // H3 $subject = preg_replace('/<\/?h3>/', '', $subject); // H4 $subject = preg_replace('/<\/?h4>/', '', $subject); // H5 $subject = preg_replace('/<\/?h5>/', '', $subject); echo $subject; Nhưng các bạn thấy liệu có hay không? có cách này để đưa vào một partern mà xử lý hết các thẻ luôn hay không? Câu trả lời là có nhé. Bạn kết hợp ví dụ 1 và ví dụ 2 lại sẽ có được chuỗi partern mong muốn. Các bạn xem bài giải sau: $subject = '<h2>This is h2</h2><h2>This is h2</h2><h3>This is h3</h3><h4>This is h4 </div><h5> This is h5 </h5>'; echo preg_replace('/(<\/?h2>)|(<\/?h2>)|(<\/?h3>)|(<\/?h4>)|(<\/?h5>)/', '', $subject); Rất gọn đúng không nào, các bạn tham khảo thêm một cách giải nữa: $subject = '<h2>This is h2</h2><h2>This is h2</h2><h3>This is h3</h3><h4>This is h4 </div><h5> This is h5 </h5>'; echo preg_replace('/<\/?h(1|2|3|4|5)>/', '', $subject); Cách này tôi dùng toán tử OR cho các số 3. Lời kếtQua 3 ví dụ trên chắc hẳn bạn đã biết các sử dụng hàm preg_replace trong php kết hợp với Regular Expression rồi nhỉ. Có rất nhiều bài toán khác nhau và ứng dụng khác nhau nên không thể quy ra một công thức chung được, các bạn cố gắng nắm vững các biểu thức Regular Expression để kết hợp là ok. |