<?php
$text    = '8-911-400-12-34';
$regexp = array('/^8[0-9]{10}$/', '/^8[(]([0-9]{3})[)][-]([0-9]{3})[ ]([0-9]{2})[ ]([0-9]{2})$/', '/^8[-]([0-9]{3})[-]([0-9]{3})[-]([0-9]{2})[-]([0-9]{2})$/');

if ((preg_match($regexp[0], $text)) || (preg_match($regexp[1], $text)) || (preg_match($regexp[2], $text))){
    echo "Все верно.\n";
} else {
    echo "Укажите номер в  формате «8(ххх)-ххх хх хх», «8-ххх-ххх-хх-хх» или «8хххххххххх»!\n";
}