Bài trước mình đã giới thiệu với mọi người về hàm preg_quote() - trích dẫn các ký tự đặc việt trong Regular Expression. Bài này chúng ta sẽ tiếp tục tìm hiểu về một hàm nữa trong gói PCRE function trong PHP, đó là hàm preg_replace().
1, Hàm preg_replace().
-Hàm preg_replace()
trong PHP có tác dụng gần giống như hàm str_replace(), nó đều có tác dụng là tìm kiếm và thay thế.
Cú Pháp:
preg_replace($pattern, $replacement, $subject, $limit, $count);
Trong đó:
$pattern
là chuỗi regex mà các bạn muốn tìm kiếm.$replacement
là chuỗi thay thế cho chuỗi regex tìm được.$subject
là chuỗi mà các bạn cần tìm kiếm và thay thế.$limit
là giới hạn số lần thay thế chuỗi mặc định là$limit = -1
là không giới hạn (tham số này có thể bỏ trống).$count
là số lần thay thế chuỗi khi sử dụng hàm, được sử dụng dưới dạng tham chiếu.(tham số này có thể bỏ trống).
2, Các ví dụ.
Thay thế chuỗi đơn giản
VD1: Tìm kiếm từ 'code' và thay thế chuỗi tìm được thành 'toidicode.com'.
<?php
$pattern = '/code/';
$replacement = 'https://toidicode.com';
$subject = 'code hoc lap trinh online - code';
echo preg_replace($pattern, $replacement, $subject);
Kết quả:
https://toidicode.com hoc lap trinh online - https://toidicode.com
VD2: Tìm kiếm và thay đổi vị trí từng chuỗi một theo pattern.
<?php
$pattern = '/([0-9]{0,2})-([0-9]{2})-([0-9]{4})-(.+)/';
$replacement = '$4 ngày $1/$2/$3';
$subject = '27-05-2017-Thứ bảy';
echo preg_replace($pattern, $replacement, $subject);
Kết quả:
Thứ bảy ngày 27/05/2017
-Như các bạn đã nhìn thấy thì ở ví dụ này mỗi một nhóm pattern được coi là một biến, biến này sẽ bắt đầu từ 1 cho đến hết và được tăng dần từ trái qua phải. Trong trường hợp trên thì
([0-9]{2})
thứ nhất là$1
.([0-9]{2})
thứ 2 là$2
.([0-9]{4})
là$3
.(.+)
là$4
.
Thay thế chuỗi giới hạn số lần thay thế
VD3: Tìm kiếm và thay thế 'facebook
' thành 'google
'. Lưu ý số lần thay thế không được vượt quá 3 lần.
<?php
$pattern = '/facebook/';
$replacement = 'google';
$subject = 'facebook facebook facebook facebook';
echo preg_replace($pattern, $replacement, $subject,3);
Kết quả:
google google google facebook
-Như các bạn đã thấy thì nó chỉ thay thế đến đúng 3 lần là dừng lại.
Thay thế và đếm số lần đã được thay thế
VD4: Cũng với ví dụ 3 nhưng lần này chúng ta sẽ không để giới hạn số lần thay thế nữa và đồng thời đếm xem sau khi chạy xong hàm thì nó đã thay thế được bao nhiêu lần.
<?php
$pattern = '/facebook/';
$replacement = 'google';
$subject = 'facebook facebook facebook facebook';
echo 'Chuỗi gốc: ' . $subject . '<br/>';
echo 'Chuỗi sau khi thay thế : ' . preg_replace($pattern, $replacement, $subject,-1, $count) . '<br/>';
echo 'Số lần thay thế: ' . $count;
Kết quả:
Chuỗi gốc: facebook facebook facebook facebook
Chuỗi sau khi thay thế : google google google google
Số lần thay thế: 4
3, Lời kết.
-Như vậy mình đã giới thiệu xong đến mọi người về hàm preg_replace() trong PHP rồi. Phần sau chúng ta sẽ tìm hiểu về hàm preg_match_all() trong PHP.
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
Bài viết rất hữu ích . cảm ơn người đăng
Phước
7 năm trước
rất bổ ích c.on tác giả
cao hoàng tú
6 năm trước
bài viết rất hay, ví dụ sinh động, cảm ơn tác giả
Phúc Nguyễn Văn
6 năm trước