What?
A note for myself on some code to convert a string of two names into a string made up of the first name and then using the initial of the second name.
-- What I have
John Smith
Fred.Bloggs

-- What I want
John S.
Fred B.

How?
So different ways, the first thing I did was to create the logic:
// default
$author_name_disp=$author_name;

// check and transform
if(strpos($author_name, ' ')!==false){
        $author_names=explode(' ', $author_name);
        $author_name_disp=ucfirst($author_names[0]).' '.strtoupper($author_names[1][0]).'.';
}elseif(strpos($author_name, '.')!==false){
        $author_names=explode('.', $author_name);
        $author_name_disp=ucfirst($author_names[0]).' '.strtoupper($author_names[1][0]).'.';
}else{
        $author_name_disp=ucfirst($author_name);
}

// output
echo $author_name_disp;

A lot of repetition so lets reduce that a touch:
// default
$author_name_disp=$author_name;

// check and transform
$delimiters=array(' ', '.');
foreach($delimiters as $word_index=>$delimiter) {
        if (strpos($author_name, $delimiter)!==false) {
                $author_names=explode($delimiters[$word_index], $author_name);
                $author_name_disp=ucfirst($author_names[0]).' '.strtoupper($author_names[1][0]).'.';
        }
}

// output
echo $author_name_disp;
And a little more:
// default
$author_name_disp=$author_name;

// check and transform
foreach(array(' ', '.') as $delimiter) {
        if (strpos($author_name, $delimiter)!==false) {
                $author_names=array_map('ucfirst', explode($delimiter, $author_name));
                $author_name_disp=$author_names[0].' '.$author_names[1][0].'.';
        }
}

// output
echo $author_name_disp;