Làm cách nào để thay thế một phần của chuỗi trong PHP?

Để thay thế một chuỗi con trong một chuỗi, chúng ta có thể sử dụng các hàm thay thế chuỗi hoặc chúng ta có thể tạo một biểu thức chính quy để thay thế phức tạp hơn

Một cách đơn giản để thay thế một chuỗi là sử dụng str_replace [đối với thay thế phân biệt chữ hoa chữ thường] hoặc stri_replace [đối với thay thế không phân biệt chữ hoa chữ thường];

Hàm str_replace gốc của PHP được sử dụng để thay thế tất cả các lần xuất hiện của một chuỗi đã cho bằng một chuỗi thay thế;

Mặc dù các hàm chuỗi được cho là nhanh hơn so với việc sử dụng các biểu thức thông thường trong các hàm preg_*, điều này dường như hiếm khi quan trọng trong thực tế. Lần trước tôi đã thử nghiệm điều này, tôi đã có thể thực hiện hơn 1 triệu lần thay thế trong khoảng một giây trên máy tính xách tay i3; . Bây giờ, điều này không có nghĩa là tôi đề xuất cái này hơn cái kia—nếu có thể sử dụng phiên bản chuỗi, thì tôi nghĩ bạn nên cố gắng làm như vậy, vì đây là một việc rất dễ thực hiện. Khi cần nhiều cuộc gọi đến str_replace, đó có thể là thời điểm tốt để sử dụng cụm từ thông dụng thay thế, vì đó là khi preg_replace thực sự có thể là tùy chọn nhanh hơn

Thay thế chuỗi bằng str_replace

Hàm str_replace có thể được sử dụng bằng cách cung cấp cho nó một chuỗi đích, một chuỗi thay thế và một chuỗi nguồn. Có thể sử dụng các chuỗi, biến và mảng trần. Ví dụ đầu tiên sử dụng chuỗi trần

$source_str = "...target1...target2...target3...target4";
echo str_replace["target2", "replacement2", $source_str];

Cũng có thể sử dụng các mảng, chứa các chuỗi khác nhau để thay thế. Việc thay thế sẽ được thực hiện theo thứ tự của mảng

$source_str = "...target1...target2...target3...target4";

$targets = array["target1", "target2", "target3"];
$replacements = array["replacement1", "replacement2", "replacement3"];

$new_str = str_replace[$targets, $replacements, $source_str];
echo $new_str;

Ghi chú. Để thực hiện khớp không phân biệt chữ hoa chữ thường, hàm stri_replace có thể được sử dụng

Sử dụng biểu thức chính quy

Biểu thức chính quy có thể được sử dụng để thay thế phức tạp hơn, chẳng hạn như khi thay thế các phần tử HTML. Trong PHP chúng ta có thể sử dụng hàm preg_replace để thực hiện thay thế bằng regex. Một số người có thể thấy nó phức tạp hơn so với việc thực hiện thay thế bằng str_replace và theo nghĩa là bạn cần học cách viết các biểu thức chính quy, tuy nhiên nỗ lực này rất đáng giá vì bạn có thể sử dụng nó trong nhiều trường hợp khác nhau

Dưới đây là biểu thức chính quy đơn giản dành cho người mới bắt đầu sẽ thay thế nhiều ký tự khoảng trắng chỉ bằng một khoảng trắng

preg_replace['/\s\s+/', ' ', $str];

Trong trường hợp này, "s" là một "mã" ngắn cho các ký tự khoảng trắng khác nhau và các dấu "+" có thể được dịch thành "một hoặc nhiều". Biểu thức có nghĩa là một cái gì đó dọc theo dòng của. Trong trường hợp tồn tại ít nhất một ký tự khoảng trắng, theo sau là một hoặc nhiều ký tự, hãy thay thế "mẫu phù hợp" này bằng một khoảng trắng duy nhất"

Sometimes you may want to "remember" certain parts of your source string while only replacing other parts. For example, you can remember the content of a HTML element, and only replace the element tags. In the below example we want to replace the paragraph tags with div tags, to do this we can "remember" the content, and replace the

tags around it. I.e.:

$str = '


  
    My first Website
  

  
    

My first Website.

'; $new_str = preg_replace['|

[[^

Chủ Đề