Обрезка текста в php для получения фамилии и инициалов?
$sName = "Фамилия Имя Отчество";
echo preg_replace('~^(\S++)\s++(\S)\S++\s++(\S)\S++$~u', '$1 $2.$3.', $sName);
Не совпадающие с маской данные - т.е. три слова, разделённые между собой как минимум одним пробельным символом - будут выведены без изменений.
так а в чём проблема, если они всегда разделены пробелом то 
explode(" ", $var);
Получаете три массива и с ними делаете что хотите