[RESOLU] preg_replace

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] preg_replace

Re: preg_replace

par Lionel R » 06 avr. 2025, 11:29

Merci pour ton retour.

Au vrai, c'est assez incompréhensible... $tout est censée contenir le code html de la page. Afin de la nettoyer (si j'ose dire), le code comprend ces lignes :

$tout=preg_replace('`<head.*?/head>`s', '', $tout);
$tout=preg_replace('`<script.*?/script>`s', '', $tout);
$tout=preg_replace('`<style.*?/style>`s', '', $tout);
$tout=preg_replace('`<select.*?/select>`s', '', $tout);
$tout=preg_replace('`<footer.*?/footer>`s', '', $tout);

Sauf que... si je regarde $tout avec ces lignes dans le code, puis en les supprimant, le résultat est le même : il ne reste que le contenu utile, savoir le texte affiché à l'écran (entre <main> et </main>). Donc, ces lignes ne servent à rien et le « nettoyage » est probablement fait ailleurs. Bon, c'est du code importé et je ne vais pas me prendre la tête avec ça, du moment que ça fonctionne.

Mon souci, c'était quelques éléments dans le pied de page. Comme ils sont fixes (et limités), je les vire avec str_replace et c'est tout bon.

Re: preg_replace

par @rthur » 05 avr. 2025, 19:53

Bonjour,

Tu es sûr d'avoir le code source html de ta page dans la variable $tout ?
Car là ton code est censé supprimer le footer qui serait contenu dans la variable $tout, il n'y a aucune recherche de mot clé

preg_replace

par Lionel R » 05 avr. 2025, 18:12

Bonjour bien.

Il s'agit d'un moteur de recherche sans base de données, suffisant pour l'usage que j'en ai. Je voudrais, dans les pages .html, supprimer tout ce qui se trouve dans le pied de page.

La variable de recherche est $tout.

Le code est le suivant : $tout=preg_replace('`<footer.*?/footer>`s', '', $tout);

Or, ça ne fonctionne pas : si j'effectue une recherche avec (pour test) un texte qui est dans le pied de page, ce texte est bel et bien trouvé – comme quoi ce qui est entre <footer> et </footer> n'a pas été supprimé.

Voilou, je ne doute pas que quelqu'un de compétent saura quoi faire. Merci par avance.