Si, possibile è possibile. Diciamo che, personalmente, il fatto che non si curi di dove debba essere la parola che cerca non mi piace...
Il codice dovrebbe essere così:
[php]
// se la posizione della stringa "mela" nell'URL della pagina è diverso
// ( sia per valore che per tipo ) da false
if ( strpos($_SERVER["REQUEST_URI"], "mela") !== false ) {
// stampa menu "mela"
}
// altrimenti se la posizione della stringa "cane" ...
else if strpos($_SERVER["REQUEST_URI"], "cane") !== false ) {
// stampa menu "cane"
}
// altrimenti se ...
// altrimenti se ...
[/php]Il codice usa la variabile predefinita di PHP $_SERVER, con il parametro "REQUEST_URI" per ottenere l'URL usata per raggiungere la pagina.
Poi controlla che al suo interno in qualsiasi posizione ci sia la stringa che si vuole ( funzione strpos() php.net/manual/en/function.strpos.php ).
Fai attenzione solo al
[php]strpos(...) !== false[/php]Questo perchè, da documentazione di PHP, se la posizione della stringa che cerchi fosse 0 ( ossia all'inizio della stringa ) PHP lo interpreterebbe come false. In questo modo lui controlla che oltre ad essere un valore uguale, lo sia anche nel tipo ( strpos ritorna un int, false è invece un booleano php.net/manual/en/language.operators.comparison.php ).
Ti ripeto però che il fatto che la stringa possa essere in qualsiasi posizione nell'URL potrebbe crearti qualche problema.
Altra cosa su cui fare attenzione: se le condizioni sono esclusive tra loro ( ossia se una volta che hai trovato una stringa le altre non ti interessano più ) è importante usare il costrutto
[php]if ()
else if ()
else if ()
...[/php]perchè altrimenti fai fare al server un sacco di lavoro inutile. Ossia se hai trovato mela, non cerchi più le altre stringhe.
Se invece usi
[php]if()
if ()
if()
...[/php]Non importa che tu abbia trovato una stringa, lui cerca nell'URL tutte le stringhe.