Originariamente inviato da simo22
Ti consiglio di usare le PCRE invece delle RegExp POSIX che sono deprecate.

Comunque puoi, con uno str_replace fare una cosa del genere:

$parole_inutili = array("il", "lo", "la", ecc ecc);
$q = str_replace($parole_inutili, "", $q);
$q = preg_replace("#/+#", "/", $q);

L'array delle parole inutili te lo riempi con tutto quello che devi scartare. Lo str_replace cancellerà tutte le parole inutili e il preg_replace sistemerà eventuali duplicazioni di slash.

Per prendere solo le prime 3 parole puoi fare:

$q = explode("/", $q);
$q = implode("/", array($q[0], $q[1], $q[2]));

Leggiti un po' di roba su php.net, soprattutto riguardo alle PCRE (Perl-Compatible Regular Expression)

grazie seguirò il tuo consiglio

Solo l'ultima cosa,
Ho notato che usando
$parole_inutili = array("il", "lo", "la", ecc ecc);
Le parole inutili sono eliminate anche se contenute all'interno di altre parole ad esempio:

"lo squalo" viene processato in "squa" in quanto contiene anche la parola inutile "lo".

Si puo fare qualcosa

Ciao e grazie