[RESOLU] Retirer du contenu avec preg_replace, ne fonctionne pas

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] Retirer du contenu avec preg_replace, ne fonctionne pas

Re: Retirer du contenu avec preg_replace, ne fonctionne pas

par zork » 03 mai 2016, 18:58

Ok...

J'avais laissé de côté ce bout de code...

J'ai trouvé le "bug", il s'agissait d'un bug d'interface chaise clavier...

Désolé de vous avoir fait perdre du temps :)

Re: Retirer du contenu avec preg_replace, ne fonctionne pas

par Ryle » 29 avr. 2016, 11:45

Bonjour,

Essayes sans les parenthèses autour du .* , il n'y a vraisemblablement rien besoin de capturer pour ce remplacement :)
(et aucune autre raison logique au fait que cela ne fonctionne pas :))

Re: Retirer du contenu avec preg_replace, ne fonctionne pas

par zork » 29 avr. 2016, 10:29

Bonjour,

permettez moi un petit "up", car je n'ai toujours pas trouvé la solution à ce petit soucis.

En vous remerciant par avance.

Re: Retirer du contenu avec preg_replace, ne fonctionne pas

par zork » 27 avr. 2016, 11:17

Bonjour @rthur,

Merci de la considération que tu montres face à mon soucis.

Voici le lien demandé : https://regex101.com/r/qZ6uF4/1

Bien à toi

Re: Retirer du contenu avec preg_replace, ne fonctionne pas

par @rthur » 26 avr. 2016, 17:02

Bonjour,

Sur regex101, tu peux enregistrer ton exemple et nous partager le lien afin que l'on voit à quoi ça ressemble ?

Car sans connaitre le contenu original, c'est difficile de voir le bug

Retirer du contenu avec preg_replace, ne fonctionne pas

par zork » 26 avr. 2016, 16:37

Bonjour à vous tous,

J'espère que le sujet est assez clair, car je n'arrive pas à l'exprimer autrement.

Je récupère une page HTML pour en traiter le contenu. Mon soucis du jour est le suivant : Je tente de supprimer tout un pavé de cette page, car ce dernier me pose un soucis dans le traitement général de la page.

Le dit pavé se trouve prit entre deux lignes html.

J'utilise la fonctionne preg_replace, pour faire "sauter" ce pavé, et le remplacer par "rien".

Ce qui donne cela :
private function retirer_menu($contenu){
            $code = '#<div class="site-header__logo-and-account is-hidden-tablet-and-below">(.*)<div class="header-categories__search">#sU'; 
            $contenu = preg_replace($code, "", $contenu);
            
            return $contenu; 
        }
Pour information, j'ai utilisé le site regex101.com pour m'assurer que le dit pavé est bien traité par mon regex, ce qui est le cas.

Pour être certain que ce bloque de texte est supprimé, j'ai fais un print_r de $contenu. Et c'est là que tout mon soucis se pose. Le bloque en question n'est pas supprimé. Les deux lignes ont bien disparue, mais pas ce qui se trouve au milieu. Je dois commettre une erreur, mais je n'arrive pas à voir où. En effet, j'ai déjà utilisé cette fonction plusieurs fois, sans soucis, mais pour faire "sauter" uniquement de petit bout de code. Ici je parle de centaines de ligne.

De plus, je tiens tout de suite à préciser que ce $contenu ne contient aucun retour à la ligne, car passé au travers d'une fonction qui retire tout cela.

Merci par avance pour votre aide, car cela fait maintenant des heures que je m'arrache le peu de cheveu qui me reste :mrgreen: