Vorrei chiederti: ma le stringhe con cui hai a ke fare contengono solo nomi, oppure si tratta di frasi generiche per cui l'apostrofo potrebbe essere usato ad es. in una frase del genere <<prendi un po' di pane>>?

Nel primo caso potresti fare:

$cerca = explode("'", $stringa);

if (sizeof($cerca) == 0) $stringa = ucwords(strtolower($stringa));
else
{
foreach($cerca as $elem) $stringa .= ucwords(strtolower($elem)) . "'";

//Occorre ora togliere l'ultimo apostrofo
$l_stringa = strlen($stringa);
$stringa = substr($stringa, 0, $l_stringa-1);
}

Ciao.