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);

Tags:

Php

String