2010-08-15 22 views
26

Làm cách nào tôi có thể sử dụng str_ireplace (hoặc một cái gì đó tương tự) để thay thế một số văn bản để định dạng và sau đó trả lại với cùng một mũ?str_ireplace() với việc giữ trường hợp

Ví dụ:

$original="The quick red fox jumps over the lazy brown dog."; 
$find="thE"; 

print str_ireplace($find,'<b>'.$find.'</b>',$original); 

Đó sẽ ra: các nhanh fox màu đỏ nhảy qua chú chó nâu lười biếng.

Tôi muốn nó giữ nguyên bản gốc và chỉ áp dụng định dạng, trong ví dụ này, văn bản in đậm.

Cảm ơn bạn.

Trả lời

39
$original = "The quick red fox jumps over the lazy brown dog."; 
$new = preg_replace("/the/i", "<b>\$0</b>", $original); 

cho "Các fox màu đỏ nhanh chóng nhảy qua các chó nâu lười biếng." Nếu bạn muốn đối sánh các từ cụ thể, bạn có thể thêm các ranh giới từ: preg_replace('/\bthe\b/i', ....

Nếu bạn muốn parameterize thay thế, bạn có thể sử dụng preg_quote:

preg_replace('/\b' . preg_quote($word, "/") . '\b/i', "<b>\$0</b>", $original); 
+0

Tuyệt vời, cảm ơn bạn. – Francisc

+0

* Con cáo màu nâu nhanh chóng nhảy qua con chó lười biếng – Popnoodles

2

Hoặc thay bằng những từ chính xác, hoặc sử dụng preg_replace:

preg_replace('/(The)/i', "<strong>$1</strong>", $original); 
+0

Cảm ơn bạn, mhitza. – Francisc

Các vấn đề liên quan