Grazie spoon25 ho dato un'occhiata al tuo suggerimento ma mi sono trovato in difficoltà, così ho provato ad approfondire la ricerca e ho trovato questo tipo di soluzione... caso mai può essere utile a qualcuno in futuro.

Questo ovviamente è un esempio, potete adattarlo al vostro utilizzo, sono comunque ben accetti suggerimenti e migliorie

codice:
// Variabile in cui è contunuto il testo
$testo

// Array contenente gli smiles
$smiles = array(':-)',':-D',':-(',':-P',':-s',':-n'); 

// Setto il contatore a 0
$smiley_count = 0;

// Effettuo il conteggio per ogni smile dell'array
foreach ($smiles as $v) {
      
   $p = 0;
      
   while (($p = strpos($testo, $v, $p)) !== false) {
            ++$p;
            ++$smiley_count;
      	}
}

// Se $smiley_count è superiore a 5 stampo l'errore	
if ($smiley_count >5) { 

echo "Sono stati inseriti troppi smile nel testo.";

}