2010-06-14 18 views
5

Tôi đang tìm kiếm và thay thế một chuỗi đã biết từ bên trong một chuỗi khác. Tôi có nên sử dụng str_replace() hoặc preg_replace()? Chuỗi phải được thay thế sẽ là một cái gì đó tương tự như [+qStr+], [+bqID+], hoặc [+aID+] và nó sẽ được được tìm kiếm trong một đoạn mã tương tự như này:PHP, lựa chọn nào tốt hơn để xóa chuỗi đã biết?

<li> [+qStr+] 
    <ol class="mcAlpha"> 
     <li><input type="radio" name="[+bqID+]" id="[+bqID+]_[+aID+]" value="[+aID+]" /><label for="[+bqID+]_[+aID+]">[+aStr+]</label></li> 
    </ol> 
</li> 

tôi sẽ thay thế các dây với kết quả từ một MySQL truy vấn và thực hiện hành động này hoặc tương tự lên tới 200 lần cùng một lúc. Hàm str_replace() hoặc preg_replace() nào là phương thức dễ nhất và/hoặc nhanh nhất để thực hiện.

Trả lời

8

Nếu chuỗi của bạn được cố định và bạn không cần cụm từ thông dụng, hãy luôn sử dụng str_replace, vì nó sẽ nhanh hơn. Lưu ý thêm rằng bạn nên quên đi ereg_replace và luôn sử dụng preg_replace, vì trước đây đã không được dùng nữa.

2

nếu bạn biết chuỗi và không cần cụm từ thông dụng, hãy sử dụng str_replace(). nó nhanh hơn bởi vì nó không cần phải thử nếu bạn sử dụng một regex.

PS: cho regex bạn nên sử dụng preg_replace() thay vì ereg_replace(), chỉ cần cho tương lai ...

+0

Tôi vừa thấy là ereg_replace() đã bị khấu hao. –

0

Vâng ereg_replace() bị phản đối như của PHP 5.3.0, vì vậy tôi wouldn' t khuyên dùng nó.

str_replace() hoặc preg_replace() sẽ là các giải pháp thay thế hợp lý. Cá nhân tôi muốn sử dụng str_replace() để tìm kiếm/thay thế đơn giản; preg_replace cho bất kỳ điều gì phức tạp hơn so khớp đơn giản

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