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