Explode a string on upper case characters?
$chunks = preg_split('/(?=[A-Z])/', $string);
Using preg_split()
on [A-Z]
should do:
function splitAtUpperCase($s) {
return preg_split('/(?=[A-Z])/', $s, -1, PREG_SPLIT_NO_EMPTY);
}
EDIT
If you don't need the array itself, you can just preprend uppercase characters (except the first) with a hyphen (-
):
preg_replace('/(?<!^)([A-Z])/', '-\\1', $param);
(demo)
function splitAtUpperCase($string){
return preg_replace('/([a-z0-9])?([A-Z])/','$1-$2',$string);
}
$string = 'setIfUnmodifiedSince';
echo splitAtUpperCase($string);