php替换掉指定字符之间的内容
$text = '<div>some other text</div>
<p class="super green" style="height: auto">i like berries</p>';
//this preg is searching for tags and text inside it
//and then change all first words to upper
$text = preg_replace_callback('#(<.*?>)(.*?)(</.*?>)#', function($matches){
//this preg is searching for last letters in words and changing it to upper
$t = preg_replace_callback('#([^ ])( |$)#', function($matches2){
return strtoupper($matches2[1]) . $matches2[2];
}, ucwords($matches[2]));
return $matches[1] . $t . $matches[3];
}, $text);
var_dump($text);
替换掉html标签之间内容的空格
$text = preg_replace_callback('#(<.*?>)(.*?)(</.*?>)#', function($matches){
//this preg is searching for last letters in words and changing it to upper
$t = preg_replace_callback('#([^ ])( |$)#', function($matches2){
return strtoupper($matches2[1]) . $matches2[2];
}, ucwords($matches[2]));
$t = str_replace(' ', '', $t);
return $matches[1] . $t . $matches[3];
}, $text);