In questo articolo descriveremo la procedura necessaria per creare una piccola funzione in grado di evidenziare in grassetto determinate parole. Inseriremo le stringhe di caratteri da evidenziare all'interno di un array, quando queste verranno rilevate all'interno di una frase passata come parametro alla funzione verranno contrasegnate dai tag "<b></b>" in modo da ottenere la formattazione desiderata.
Diamo subito un sguardo al codice della nostra funzione, a completamento del listato inseriremo un esempio pratico del suo utilizzo:
<?
function evidenzia ($fraseinga, $parola)
{
$sostituzione = '' ;
foreach ($parola as $v)
{
$sostituzione .= $v . '|' . maiuscolo ($v) . '|' ;
}
$sostituzione = @substr ($sostituzione , 0 , @strlen ($sostituzione) - 1) ;
$fraseinga = @eregi_replace ($sostituzione , '<b>\\0</b>' , $fraseinga) ;
return $fraseinga ;
}
function maiuscolo ($frase)
{
$frase = @strtr ($frase ,
'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ' ,
'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn' );
$frase = @strtoupper ($frase) ;
return $frase ;
}
//esempio di utilizzo della funzione
$parola = @array ( 'php' , 'SSI') ;
$frase = "Php è un linguaggio di Scripting Server Side (SSI).";
echo @evidenzia($frase, $parola) ;
?>
Accanto alla funzione più importante (evidenzia()) ne abbiamo inserito una seconda (maiuscolo()), che ci permetterà di gestire anche quelle parole straniere che dovessere presentare accenti o caratteristiche particolari.
Da notare come le parole da evidenziare siano state passate all'array in formato minuscolo, la funzione è infatti case-sensitive, cioè è in grado di comprendere la differenza tra lettere maiuscole e minuscole. |