Format a string excluding text in brackets
$str = 'This [WILL] be fOrMatTed';
$matches = array();
$searches = array();
preg_match_all('(\[(.+?)\])', $str, $placeholders);
$lstr = strtolower($str);
foreach ($placeholders[0] as $mk => $match) {
$pos = $mk+1;
$matches[] = $match;
$searches[] = strtolower($match);
}
// Replace lower case with original case
$fstr = str_replace($searches,$matches,$lstr);
// Remove brackets
$fstr = str_replace(array('[',']'), '', $fstr);
echo $fstr // outputs 'this WILL be formatted'
Written by Dave Townsend
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Php
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#