Site icon Noir Solutions

Stringa PHP rimuovere tags hml

Vediamo adesso in questa nuova guida come rimuovere i caratteri tag html da una stringa con il PHP. Vedremo quindi principalmente le funzioni strip_tags, pre_replace e capiremo come ripulire una stringa da caratteri speciali.

Ovviamente per rimuovere i tags PHP da una stringa Html la funzione principale è strip_tags la cui sintassi è la seguente.

string strip_tags ( string $stringa [, string $tag_permessi] )

dove

Vediamo subito un esempio

$testo = '<p>Paragrafo Testo.</p><a href="#para">Altro Testo</a>';
echo strip_tags($testo);

La stringa sopra ritonerà semplicemente

Paragrafo Testo Altro Testo

se invece introducessimo una modifica del tipo

echo strip_tags($testo, <p> );

avrebbe ritornato semplicemente

<p> Paragrafo Testo</p> Altro Testo

Questo nello specifico . Diciamo che questa è la funzione standard
Nel caso che si voglia rimuovere tags html derivanti da un parser strip_tags potrebbe anche non funzionare per problemi di codifica utf8.

In questi casi sempre il PHP mette a disposizione delle funzioni più potenti come preg_match_all che ovviamente non è una funzione specifica ma se abbinata con implode permette di ripulire ogni tag html e anche eventuali caratteri sporchi.

Ovviamente qui non vi spiego nel dettaglio il suo funzionamento ma vi lancio ad un esempio esplicito omni comprensivo.

<?php

function strip_tags_contenuto($text, $tags = '', $invert = FALSE) {

preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags); 
 $tags = array_unique($tags[1]); 
 
 if(is_array($tags) AND count($tags) > 0) { 
 if($invert == FALSE) { 
 return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text); 
 } 
 else { 
 return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text); 
 } 
 } 
 elseif($invert == FALSE) { 
 return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text); 
 } 
 return $text; 
} 
?>

Vi consiglio caldamente di provarla. Una funzione molto simile  a preg_replace è ovviamente str_replace anche questa utilizzata spesso in caso di parser ma ovviamente meno potente della stringa regolare.

Exit mobile version