Errore funzione elimina script

Super_nio

Nuovo Utente
7 Dic 2012
16
0
0
Salve ho reperito da internet una funzione che mi dovrebbe eliminare tutti gli script presenti all'interno di un codice html.

PHP:
function strip_html_tags( $text )
{
    $text = preg_replace(
        array(
          // Remove invisible content
            '@<head[^>]*?>.*?</head>@siu',
            '@<style[^>]*?>.*?</style>@siu',
            '@<script[^>]*?.*?</script>@siu',
            '@<object[^>]*?.*?</object>@siu',
            '@<embed[^>]*?.*?</embed>@siu',
            '@<applet[^>]*?.*?</applet>@siu',
            '@<noframes[^>]*?.*?</noframes>@siu',
            '@<noscript[^>]*?.*?</noscript>@siu',
            '@<noembed[^>]*?.*?</noembed>@siu',
          // Add line breaks before and after blocks
            '@</?((address)|(blockquote)|(center)|(del))@iu',
            '@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
            '@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
            '@</?((table)|(th)|(td)|(caption))@iu',
            '@</?((form)|(button)|(fieldset)|(legend)|(input))@iu',
            '@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
            '@</?((frameset)|(frame)|(iframe))@iu',
        ),
        array(
            ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
            "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0",
            "\n\$0", "\n\$0",
        ),
        $text );
    return strip_tags( $text );
}

mi ritorna questo errore : Parse error: syntax error, unexpected ';', expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in /Applications/MAMP/htdocs/modelli_portatili.php on line 106

Come potrei risolvere?
 
Ultima modifica di un moderatore:
Ho risolto, c'era un errore nella dichiarazione dell'array.
Anzichè essere '','','', le virgolette devono andare così ' "\n\$0"', "\n\$0"',
 
Pare che questa funzione non mi risolvi il problema.
Ho un codice html e dovrei prendere solo parte di esso.Applico la funzione substr per delimitare quello da prendere e una strip_tags per pulire il codice da tutti i tag html.Il problema è che dopo aver fatto tutto questo oltre al testo ottenuto dalla substr mi rimangono anche i pezzi di codice script presenti all'interno del codice html.Non avendo tag html non vengono eliminati e non capisco come mai la substr non si blocca dove dovrebbe.
PHP:
for($k=0;$k<1;$k++){
    for($d=0;$d<count($link[$k]);$d++){
            $sito=$link[$k];
            $sito2=$sito[$d];
            $preleva=file_get_contents($sito2);
            $inizio=strpos($preleva,"og:description");
            $fine=strpos($preleva,"/>");
            $descrizione[$d]=strip_tags(substr($preleva,$inizio+25,$fine-$inizio));
       }
    $sito3[$k]=$descrizione[$d];
}
        echo($descrizione[0]);

Sono 2 cicli for poichè $solo_link è un array multidimensionale.
Provando la funzione reperita da internet nn succede nulla,non ricevo ne miglioramenti ne errori.
 
Ultima modifica di un moderatore:
ciao
intanto ricordati di racchiudere il codivce tra gli appositi tag (seconda riga formattazione del post ultime tre iconcine nell'ordine CODE, HTML, PHP),
poi perche non usi semplicemente strip_tags?
PHP:
<?php
$testo=strip_tags($testo);
?>
oppure se vuoi mantenere i alcuni tags
PHP:
<?php
$tag_permessi="<br> <br /> <b> <p>";//e quelli che vuoi
$testo=strip_tags($testo, $tag_permessi);
?>
http://it1.php.net/manual/en/function.strip-tags.php
 
Il codice non è racchiuso fra i tag di formattazione php poichè ho copiato e incollato solo il pezzo interessato.
Utilizzo la strip_tags ma tale funzione elimina solo tag html non elimina linee di codice utilizzate per eventuali script ( non avendo tag html).
La cosa strana è che la substr non tronca il testo dove dovrebbe ma prende in considerazione anche tutte queste linee di codice riferite agli script.
Quindi uscirebbe una cosa di questo genere : Testo troncato. /> var dest = window.location.href; try{ var current = parent.location.href; }catch(e){ parent.location.href = dest; ......
 

Discussioni simili