Preg_replace pour un fichier html

berth -  
 berth -
Bonjour,

Pour mon site internet je dois faire un include d'un fichier htm mais ce fichier contient des balises div qui font que ce fichier htm ne s'intègre pas bien dans la page. J'ai vu qu'on pouvait utiliser preg_replace pour remplacer des chaines de caractères mais je n'arrive pas à le faire pour un fichier htm. Pouvez vous m'aider?

Merci d'avance.

A voir également:

3 réponses

dariumis Messages postés 583 Statut Membre 63
 
Salut, si tu veux simplement supprimer les div tu peux faire un truc comme ça:

$leTexte=preg_replace("#<div>|</div>#i", '', $leTexte);


Si il rencontre une balise div ouvrante ou fermante en majuscule ou miniscule il le remplace par rien.

Tutoriel:
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/916990-les-expressions-regulieres-partie-1-2
0
dariumis Messages postés 583 Statut Membre 63
 
En fait ton problème c'est peut etre plus récuperer le contenu du fichier, le modifier et le sauvegarder, moi je fais comme ça:

if (file_exists("fichierHtm.htm")) {//si le fichier existe
    $file = fopen("fichierHtm.htm", 'r');//je l'ouvre en modification
    $str = file_get_contents("fichierHtm.htm");//je recupere le contenu
    $str = traiteFichier($str);//une fonction qui modifie le contenu
    fclose($file);//je ferme le fichier
    $file = fopen("fichierHtm.htm", 'w+');//je l'ouvre en écriture
    fwrite($file, $str);//j'écrit le nouveau contenu
    fclose($file);//je ferme le fichier
}

//je fais les modifs dans une fonction
function traiteFichier($leTexte) {
    $leTexte=preg_replace("#<div>|</div>#i", '', $leTexte);
    return $leTexte;
}
0
berth
 
Le problème c'est que sur le serveur qui héberge mon site la fonction fopen n'est pas autorisée... Y a-t-il une autre solution? Et en effet mon problème se situe plus dans le fait de récupérer le contenu de ma page htm...
0