Hướng dẫn dùng replace s trong PHP

Cú pháp

Cú phápstr_replace($search, $replace, $subject);

Hướng dẫn dùng replace s trong PHP

Hướng dẫn dùng replace s trong PHP

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 đó:

  • $search là kí tự, chuỗi kí tự hoặc mảng các chuỗi ký tự cần tìm kiếm để thay thế.
  • $replace là kí tự, chuỗi kí tự hoặc mảng các chuỗi ký để thay thế cho kí tự, chuỗi kí tự hoặc mảng các chuỗi ký $sreach.
  • $subject là chuỗi ký tự hoặc mảng các chuỗi ký tự gốc cần được chỉnh sửa.

    Hàm str_replace() sẽ thay thế tất cả các ký tự $strSearch nằm trong $subject bằng ký tự $strReplace.

Mô tả

  • Nếu $search$replace là các mảng , 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 $replace có ít phần tử hơn $search thì những chuỗi rỗng sẽ được sử dụng như là giá trị thay thế.
  • Nếu $search là 1 mảng và $replace là 1 chuỗi thì giá trị chuỗi $replace sẽ được thay thế cho mọi phần tử trong array $search.
  • Nếu $search$replace là các mảng các phần tử sẽ được xử lý từ đầu đến cuối.

Kết Quả trả về

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

Bài viết này được đăng tại [free tuts .net]

Ví dụ

$search, $replace, $subject đều là chuỗi(string):

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'.

$search, $replace, $subject đều là mảng:

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 "
";
   print_r($result);
echo "
";

Kết quả

Array
(
	[0] => ban
	[1] => co
	[2] => hoc php
	[3] => tai freetuts.net
)

các phần từ trong mảng $search lần lượt được tìm kiếm và thay thế bằng các phần tử trong mảng $replace.

$search là array, $replace là chuỗi:

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 $search đều được thay thế bằng chuỗi $replace.

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

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 $search có giá trị 'lap trinh' đã bị thay thế bằng 1 khoảng trắ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 str_replace().

Cú pháp hàm preg_replace()

Hàm preg_replace sử dụng RegExp (xem cách viết biểu thức chính quy RegExp) để tìm kiếm và thay thế chuỗi.

Nội dung chính

  • Cú pháp hàm preg_replace()
  • Ví dụ 1 về preg_replace
  • Ví dụ 2 $replacement đặc biệt
  • Ví dụ 3 dùng preg_replace với mảng xử lý BBCODE
  • Kết Quả trả về
  • Cú pháp hàm preg_replace()
  • Ví dụ 1 về preg_replace
  • Ví dụ 2 $replacement đặc biệt
  • Ví dụ 3 dùng preg_replace với mảng xử lý BBCODE

preg_replace($pattern, $replacement,$subject)

Hàm này tìm trong $subject các chuỗi con phù hợp với mẫu $pattern là một biểu thức RegExp, thay thế chuỗi tìm thấy bởi $replacement

  • $pattern : Biểu thức RegExp để tìm kiếm có thể là một chuỗi hoặc một mảng.
  • $subject : Chuỗi nhập vào để tìm kiếm
  • $replacement : Giá trị thay thế, có thể là chuỗi hoặc mảng. Nếu $pattern là mảng $replacement là chuỗi thì mọi kết quả tìm kiểm theo $pattern được thay thể bởi $replacement. Nếu cả $pattern, $replacement là mảng thì nó thay thế theo phần tử tương ứng.

$replacement đặc biệt có thể được biểu diễn một cách đặc biệt, nó có thể chứa các tham chiếu dùng để chèn nội dung, tham chiếu có dạng $n với n = 0 - 99. Với $0 tương ứng với sự phù hợp với toàn bộ $pattern, $1, $2 ... tương ứng với mẫu con theo thứ tự trong $pattern (Xem ví dụ 2)

Hàm preg_replace trả về chuỗi hoặc mảng các chuỗi để tìm kiếm và thay thế.

Ví dụ 1 về preg_replace

Dùng biểu thức chính quy và hàm preg_replace tìm các cụm số thay thế bằng 2000


//OUT:
Ví dụ về hàm preg_replace 2000 2000

Ví dụ 2 $replacement đặc biệt

Ví dụ sau, cho chuỗi có nội dung: 'Tháng ... Năm ....' đảo thành 'Năm ..., Tháng ...'


//OUT:Năm 2017, Tháng 12

Với ví dụ trên về $pattern cờ ui cho biết không phân biệt chữ hoa, chữ thường và dùng chuỗi Unicode. Với mẫu này trong nó có các $pattern con là (\w+) tương ứng với $1, (\d+) tương ứng với $2 ...Và $replacement sử dụng các chỉ số này để tạo chuỗi thay thế.

Ví dụ 3 dùng preg_replace với mảng xử lý BBCODE

Ví dụ sau sẽ chuyển các mã bbcode: b, i, u, img, url thành mã HTML thông thường.

$1',
        '$1',
        '$1',
        '',
        '$1',
        '$2'
    );

    $str = preg_replace ($search, $replace, $str);
    return $str;
}
//Test
$bbcdoe = '[url=https://xuanthulab.net][b]xuanthulab.net[/b][/url]';
echo bbcode2Html($bbcdoe);
//OUT HTML: xuanthulab.net

Cú pháp

Cú phápstr_replace($search, $replace, $subject);

Nội dung chính

  • Kết Quả trả về
  • Cú pháp hàm preg_replace()
  • Ví dụ 1 về preg_replace
  • Ví dụ 2 $replacement đặc biệt
  • Ví dụ 3 dùng preg_replace với mảng xử lý BBCODE

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 đó:

  • $search là kí tự, chuỗi kí tự hoặc mảng các chuỗi ký tự cần tìm kiếm để thay thế.
  • $replace là kí tự, chuỗi kí tự hoặc mảng các chuỗi ký để thay thế cho kí tự, chuỗi kí tự hoặc mảng các chuỗi ký $sreach.
  • $subject là chuỗi ký tự hoặc mảng các chuỗi ký tự gốc cần được chỉnh sửa.

    Hàm str_replace() sẽ thay thế tất cả các ký tự $strSearch nằm trong $subject bằng ký tự $strReplace.

Mô tả

  • Nếu $search$replace là các mảng , 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 $replace có ít phần tử hơn $search thì những chuỗi rỗng sẽ được sử dụng như là giá trị thay thế.
  • Nếu $search là 1 mảng và $replace là 1 chuỗi thì giá trị chuỗi $replace sẽ được thay thế cho mọi phần tử trong array $search.
  • Nếu $search$replace là các mảng các phần tử sẽ được xử lý từ đầu đến cuối.

Kết Quả trả về

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

Bài viết này được đăng tại [free tuts .net]

Ví dụ

$search, $replace, $subject đều là chuỗi(string):

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'.

$search, $replace, $subject đều là mảng:

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 "
";
   print_r($result);
echo "
";

Kết quả

Array
(
	[0] => ban
	[1] => co
	[2] => hoc php
	[3] => tai freetuts.net
)

các phần từ trong mảng $search lần lượt được tìm kiếm và thay thế bằng các phần tử trong mảng $replace.

$search là array, $replace là chuỗi:

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 $search đều được thay thế bằng chuỗi $replace.

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

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 $search có giá trị 'lap trinh' đã bị thay thế bằng 1 khoảng trắ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 str_replace().

Cú pháp hàm preg_replace()

Hàm preg_replace sử dụng RegExp (xem cách viết biểu thức chính quy RegExp) để tìm kiếm và thay thế chuỗi.

preg_replace($pattern, $replacement,$subject)

Hàm này tìm trong $subject các chuỗi con phù hợp với mẫu $pattern là một biểu thức RegExp, thay thế chuỗi tìm thấy bởi $replacement

  • $pattern : Biểu thức RegExp để tìm kiếm có thể là một chuỗi hoặc một mảng.
  • $subject : Chuỗi nhập vào để tìm kiếm
  • $replacement : Giá trị thay thế, có thể là chuỗi hoặc mảng. Nếu $pattern là mảng $replacement là chuỗi thì mọi kết quả tìm kiểm theo $pattern được thay thể bởi $replacement. Nếu cả $pattern, $replacement là mảng thì nó thay thế theo phần tử tương ứng.

$replacement đặc biệt có thể được biểu diễn một cách đặc biệt, nó có thể chứa các tham chiếu dùng để chèn nội dung, tham chiếu có dạng $n với n = 0 - 99. Với $0 tương ứng với sự phù hợp với toàn bộ $pattern, $1, $2 ... tương ứng với mẫu con theo thứ tự trong $pattern (Xem ví dụ 2)

Hàm preg_replace trả về chuỗi hoặc mảng các chuỗi để tìm kiếm và thay thế.

Ví dụ 1 về preg_replace

Dùng biểu thức chính quy và hàm preg_replace tìm các cụm số thay thế bằng 2000


//OUT:
Ví dụ về hàm preg_replace 2000 2000

Ví dụ 2 $replacement đặc biệt

Ví dụ sau, cho chuỗi có nội dung: 'Tháng ... Năm ....' đảo thành 'Năm ..., Tháng ...'


//OUT:Năm 2017, Tháng 12

Với ví dụ trên về $pattern cờ ui cho biết không phân biệt chữ hoa, chữ thường và dùng chuỗi Unicode. Với mẫu này trong nó có các $pattern con là (\w+) tương ứng với $1, (\d+) tương ứng với $2 ...Và $replacement sử dụng các chỉ số này để tạo chuỗi thay thế.

Ví dụ 3 dùng preg_replace với mảng xử lý BBCODE

Ví dụ sau sẽ chuyển các mã bbcode: b, i, u, img, url thành mã HTML thông thường.

$1',
        '$1',
        '$1',
        '',
        '$1',
        '$2'
    );

    $str = preg_replace ($search, $replace, $str);
    return $str;
}
//Test
$bbcdoe = '[url=https://xuanthulab.net][b]xuanthulab.net[/b][/url]';
echo bbcode2Html($bbcdoe);
//OUT HTML: xuanthulab.net