funzione per entità html e classe

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Allora ragazzi vorrei un vostro parere;
in quanto spesso mi sono trovato nella condizione di dover convertire caratteri entià html e di includere anche una classe.
Facendo <?php echo htmlentities(“ testo etc <font class=’testo’>….”) ?> ovviamente non è possible; quindi ogni volta dovevo chiudere e riaprire la funzione htmlentities.
Per questo ho sviluppato questa piccola funzione:
PHP:
function testo_corretto($testo,$classe){

	$stringa_in_array=explode(" ",$testo);
	$array=array();
	
	
	for($x=0;$x<count($stringa_in_array);$x++){
		
		//ottengo il testo in array
		$testo_attuale=$stringa_in_array[$x];
		
			
			if($testo_attuale=='[font]'){$array[]="<font class='$classe'>";}
			else if($testo_attuale=='[/font]'){$array[]="</font>";}
			else{$array[]=htmlspecialchars($testo_attuale);}
			
			
		
	}
	$array_di_ritorno=implode($array, " ");
	return $array_di_ritorno;
}


$testo2="testo contenenti  [font] & è à ò ! , .   [/font]  entità html ";
echo testo_corretto($testo2,'red');

in sostanza basta indicare il testo, e il nome della classe come argomenti; quando bisogna applicare la classe basta chiudere la stringa tra [font] e [/font]. La devo testare.
 
Ultima modifica:
Scusate rettifico:

anzoché htmlspecialchars hatmlentities

vi riposto la funzione completa:

PHP:
	function testo_corretto($testo,$classe){

				$stringa_in_array=explode(" ",$testo);
				$array=array();


				for($x=0;$x<count($stringa_in_array);$x++){
					
					//ottengo il testo in array
					$testo_attuale=$stringa_in_array[$x];
					
						
						if($testo_attuale=='[font]'){$array[]="<font class='$classe'>";}
						else if($testo_attuale=='[/font]'){$array[]="</font>";}
						else{$array[]=htmlentities($testo_attuale);}
						
						
					
				}
				$array_di_ritorno=implode($array, " ");
				return $array_di_ritorno;
			}

Questa sembra funzionare correttamente solo bisogna stare attenti a dare uno spazio tra [font] e [/font]
 

Discussioni simili