Rimuovere i tag HTML da una stringa

Scritto da loige

Talvolta risulta utile ripulire una stringa html da tutti i suoi tag per recuperare semplicemente il testo. Ciò può risultare parecchio utile per ripulire campi di testo che si occupano di raccogliere commenti, informazioni e così via, così da rimuovere completamente tag o formattazioni indesiderate.

Ho riscontrato la seguente necessità realizzando un sistema di inserimento news nel quale desideravo non avere alcun tipo di formattazione html. Cercando un po’ in giro sulla rete ho trovato una funzione che adempiva pienamente a questo compito:

 
<?
 
function removeHtmlTags($HTMLstring){
  $search = array (“‘<script[^>]*?>.*?</script>’si”,
 	                  “‘<[/!]*?[^<>]*?>’si”,
 	                  “‘([rn])[s]+’”,
 	                  “‘&(quot|#34);’i”,
 	                  “‘&(amp|#38);’i”,
 	                  “‘&(lt|#60);’i”,
 	                  “‘&(gt|#62);’i”,
                     	  “‘&(nbsp|#160);’i”,
 	                  “‘&(iexcl|#161);’i”,
 	                  “‘&(cent|#162);’i”,
 	                  “‘&(pound|#163);’i”,
 	                  “‘&(copy|#169);’i”,
 	                  “‘&#(d+);’e”);
 	 $replace = array (“”,
 	                  “”,
	                  1,
	                  \”,
 	                  “&”,
 	                  “<”,
 	                  “>”,
	                  ” “,
 	                  chr(161),
 	                  chr(162),
 	                  chr(163),
	                  chr(169),
 	                  “chr(xxx1)”);
  return preg_replace($search, $replace, $HTMLstring);
}
 
?>

Come potete notare dalla prima riga di codice il nostro script rimuove anche i tag <script> che spesso potrebbero risultare pericolosi minando l’integrità delle vostre pagine.

Adesso vedremo un esempio di come utilizzare questa funzione.
Copiate il codice visto in precedenza in un nuovo file e chiamatelo “htmlRemove.php”.
Adesso create un nuovo file php con il seguente codice

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
 
<? 
include(“htmlRemove.php”);
?>
 
<html xmlns=“http://www.w3.org/1999/xhtml” xml:lang=“en” lang=“en”>
<head>
	<title>removeHtmlTags test</title>
</head>
 
<body>
  <form action=“cleanhtml.php” method=“post”>
  <textarea name=“text” cols=“50″ rows=“20″>
  <?
  if (isset($_POST[‘text’]))
  {
    	echo($_POST[‘text’]);
  }
  else
  {
  	echo(“Scrivi qui il testo con il codice HTML”);
  }
  ?>  
  </textarea>
      <br/>
    <input type=“submit” value=“Submit”>
  </form>
  <p>
  <?
  if (isset($_POST[‘text’]))
  {
    echo(removeHtmlTags($_POST[‘text’]));
  }
  ?>
  </p>
  </body>
</html>

Semplice no? :)

Sponsor

3 Commenti a “Rimuovere i tag HTML da una stringa”

  1. Semplice e utile!

  2. http://www.php.net/strip_tags

  3. Grazie mille della segnalazione gx ;)

Scrivi un commento