[PHP] Enlever les balites <script> d'une page

Résolu/Fermé
engies - Modifié par engies le 9/06/2010 à 16:59
 engies - 9 juin 2010 à 17:25
Bonjour,
Je suis actuellement entrain de faire un moteur de recherche et j'ai un pitit problème :(
Je suis entrain de corriger les bugs dans mon indexeur mais je n'arrive pas à supprimer tout le code javascript des pages ....
Voici un exemple de code html qui produit cette erreur:
<strong class="liens_invites">Inscription</strong><br /> 
<p>Inscription rapide en 2 minutes</p> 

<p class="bloc_connexion"> 
    <a href="connexion.html"> 
        <strong class="liens_invites">Connexion</strong><br /> 
        Utilisez votre compte 
    </a> 
    <a class="rpxnow" onclick="return false;" href="http://site-du-zero.rpxnow.com/..." rel="nofollow"><img src="Templates/images/designs/2/rpx_icons.png" alt="connexion_rpx" /></a> 
    <script type="text/javascript"> 
        var rpxJsHost = (("https:" == document.location.protocol) ? "[[https://]]" : "http://static."); 
        document.write(unescape("%3Cscript src='" + rpxJsHost + 
        "rpxnow.com/js/lib/rpx.js' type='text/javascript'%3E%3C/script%3E")); 
    </script> 
    <script type="text/javascript"> 
        RPXNOW.overlay = true; 
        RPXNOW.language_preference = 'fr'; 
    </script> 
</p> 


et le bout du code php qui le filtre:
//On enlève tous les codes js. 
$this->contenu = preg_replace("#<script.*>.*</script>#isUm", " ", $this->contenu); 

//On enlève les styles. 
$this->contenu = preg_replace("#<style.*>.*</style>#isUm", " ", $this->content); 

//On enlève tous les liens et leurs contenu car il n'ont pas 
//d'information sur cette page. 
$this->contenu = preg_replace("#<a.*>.*</a>#isUm", " ", $this->contenu); 

//On enlève les balistes unique. 
$this->contenu = preg_replace("#<[^<]+\s*/>#isUm", " ", $this->contenu); 
$this->contenu = preg_replace("#<br>|<hr>#isUm", " ", $this->contenu);


Donc si quelqu'un a une idée, ce serait gentil de me la donner...
A voir également:

3 réponses

Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
Modifié par Defouille le 9/06/2010 à 17:21
Bonjour,

Quel problème as tu exactement ?

As tu remarqué qu'a ton second remplacement tu utilises "$this->content" au lien de "$this->contenu" ?

//On enlève les styles.  
$this->contenu = preg_replace("#<style.*>.*</style>#isUm", " ", $this->content);  


Il y a seulement 10 types de personnes, ceux qui comprennent le binaire, et les autres...
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 juin 2010 à 17:20
vas voir du côté de la fonction php strip_tags()
0
Merci tout d'abord pour ces réponses rapides ....
Et .... un grand merci à Defouille, car effectivement, je n'avais pas remarqué que le second remplacement utilise $this->content ^^
0