I'm curious what the most performant method of doing string transformations is. Given a n input string and a set of translations, what method is the most efficient in general? I currently use strtr()
, but have tested various looping methods, str_replace()
with an array, etc. The strtr()
method benchmarks the fastest on my system, depending on the translations, but I'm curious if there are faster methods I haven't thought of yet.
If it's pertinent, my particular use case involves transforming 2-byte strings into ANSI color sequences for a terminal. Example:
// In practice, the number of translations is much greater than one...
$out = strtr("|rThis should be red", array('|r' => "33[31m"));
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…