Puoi fare cosi se vuoi contare non soltanto gli spazi ma anche le virgole, punto , etc...
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php
$testo = "Io avevo fatto così e mi sembra che funzioni abbastanza bene,";
$testo .= "l'unico problema è che considera i caratteri accentati come non parola,";
$testo .= "cosa che si potrebbe risolvere inserendoli nella classe dei caratteri";
$testo .= "consentiti così [a-zàèìòù].";
$testo .= "Il modo migliore in realtà sarebbe di definire i caratteri di una parola";
$testo .= " attraverso la classe [\p{L}] ma preg non vuole accettarmi questa sintassi,";
$testo .= "nonostante abbia messo il modificatore u come dice il manuale:";
$pattern = "/^(\w+\W*){1,15}/";
print "$testo
";
preg_match($pattern,$testo,$regs);
print_r($regs);
?>
<hr>
<?
$testo = preg_replace($pattern,"\\0...",$testo);
print $testo;
?>
</body>
</html>