PhpRiot
News Archive
PhpRiot Newsletter
Your Email Address:

More information

David Sklar's Blog: Fast Multiple String Replacement in PHP

Note: This article was originally published at PHPDeveloper on 2 October 2010.
PHPDeveloper

David Sklar has a new post to his blog today sharing an extension he's created to make replacing strings in PHP a much faster task - Boxwood.

A straightforward way to do [string replacement] in PHP is to pass an array of words to look for and their replacements to a function like str_replace() or str_ireplace(). Or, similarly, use a regular expression that gloms the search terms together (and potentially checks word boundaries.) There are assorted WordPress plugins that work like this. The problem with this approach is that it's really slow. Especially if you have a lot of words you're looking for. The amount of time it takes to do the search and replace grows in proportion to the number of words you're looking for. This is particularly unfortunate because usually, none of the words are ever found!

With the Boxwood extension, the word list can be as long as needed because it uses an ordered tree structure (trie) to parse the entire tree only once so there's much less overhead.