Salve ragazzi, vi espongo il mio problema.
Ho creato uno script che elimina tutti i TAG html da un testo dato in input.
Questo testo ovviamente è una pagina HTML :-).
Solo che ho notato un problema, questo script non elimina i TAG HTML interroti.
Mi spiego meglio.
Sempre utilizzando lo script di "eliminazione dei TAG" se trova TAG HTML non completi non li elimina.
Tag HTML incompleti possono essere: <p align=, oppure <img src=, oppure <a href=
Ecco lo script che utilizzo:
Codice PHP:
<?php
$paginaHTML = '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nuova pagina 1</title>
</head>
<body>
Prova</p>
TAG</p>
[url="http://"]url[/url]</p>
[img]http://www.ciao.it/ciao.gif[/img]</p>
</body>
</html>';
$search = array ("'<script[^>]*?>.*?</script>'si", // Rimozione del javascript
"'<[\/\!]*?[^<>]*?>'si", //Rimozione dei TAG HTML
"'([\r\n])[\s]+'", //Rimozione spazi bianchi
"''",
"'&'",
"'<'",
"'>'");
$replace = array ("",
"",
" ",
" ",
// Sostituzione delle entità HTML
"&",
"<",
">");
$text = preg_replace($search, $replace, $paginaHTML);
echo "Ecco il testo pulito:
";
echo $text;
?>
Se lo eseguite vedrete che i TAG HTML se ne vanno tutti.
Ora però provate questo:
Codice PHP:
<?php
$paginaHTML = '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nuova pagina 1</title>
</head>
<body>
Prova</p>
TAG</p>
<a href="htt</p>
[img]http://www.ciao.it/ciao.gif[/img]</p>
</body>
</html>';
$search = array ("'<script[^>]*?>.*?</script>'si", // Rimozione del javascript
"'<[\/\!]*?[^<>]*?>'si", //Rimozione dei TAG HTML
"'([\r\n])[\s]+'", //Rimozione spazi bianchi
"''",
"'&'",
"'<'",
"'>'");
$replace = array ("",
"",
" ",
" ",
// Sostituzione delle entità HTML
"&",
"<",
">");
$text = preg_replace($search, $replace, $paginaHTML);
echo "Ecco il testo pulito:
";
echo $text;
?>
Come potete vedere il TAG <a href= rimane...
Ringrazio chiunque mi possa aiutare...