Fonction [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 16 décembre 2003
Statut
Membre
Dernière intervention
31 octobre 2007
-
Messages postés
5
Date d'inscription
mardi 16 décembre 2003
Statut
Membre
Dernière intervention
31 octobre 2007
-
Bonjour,

Je cherche à faire une fonction en PHP mais je ne sais pas comment commencer et surtout comment trouver des informations à ce sujet.

En fait, il s'agirait d'une fonction qui parserait le contenu d'une page. Après chaque balise </h2> trouvée, j'aimerai ajouter une balise
et avant chaque balise <h2>, une balise
.

Quelqu'un a-t-il des informations qui pourraient m'aider ou un début de piste?

Merci d'avance!

6 réponses

Messages postés
80
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
16 février 2008

Oups j'ai opublié un petit détail  c'est plutot comme ça :
    la fonction ereg() est la clé de ton pb

$sContent = file_get_contents('http://www.exemple.com/test.php');
if !(ereg("^",$sContent))//si <h2> n'est pas au début de la chaine le remplacer
    $sContent = str_replace('<h2>','
<h2>',$sContent);  
if !(ereg("
$",$sContent))//si </h2> n'est pas à la fin de la chaine le remplacer
    $sContent = str_replace('</h2>','</h2>
',$sContent);
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
$sContent=file_get_content('http://mapage.php');
$sContent=rtr_replace('</h2>','</h2>
',$sContent);
$sContent=rtr_replace('<h2>','
<h2>',$sContent);

c'est ça que tu veux ...?
Ajouter
après /h2 et ajouter
après h2 ... tu es sur que ça a un sens niveau structure...?moi je crois pas ...

--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
5
Date d'inscription
mardi 16 décembre 2003
Statut
Membre
Dernière intervention
31 octobre 2007

Merci pour ta réponse Teclis01!

En fait, il faudrait que je rajoute une balise
après un chaque </h2> et une balise de fermeture
avant chaque .

Ce qui donnerait:
<h2>Titre 1




Contenu 1


Titre 2




Contenu 2


Titre 3


Etc...

Le contenu à parser est utilisable via une variable. En gros, le contenu qui se trouve entre chaque titre H2 devrait être inclu dans une DIV.

Merci encore! a+
Messages postés
5
Date d'inscription
mardi 16 décembre 2003
Statut
Membre
Dernière intervention
31 octobre 2007

Ca fonctionne avec cette fonction, merci:

$sContent = file_get_contents('http://www.exemple.com/test.php');
$sContent = str_replace('</h2>','</h2>
',$sContent);
$sContent = str_replace('','
<h2>',$sContent);

Le fait est qu'il faudrait qu'il n'ajoute pas de
au 1er <h2> trouvé et pas de
au dernier
non plus. Sinon, voilà ce que ça me donne:
</div><h2>Titre 1</h2><div>
<p>d fg sdfg sdf hsd fhz wrt gsdfh</p>
</div><h2>Titre 2</h2><div>
<p>d fg sdfg sdf hsd fhz wrt gsdfh</p>
</div><h2>Titre 3</h2><div>
<p>d fg sdfg sdf hsd fhz wrt gsdfh</p>
</div><h2>Titre 4</h2><div>
<p>d fg sdfg sdf hsd fhz wrt gsdfh</p>

Merci encore!
Messages postés
80
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
16 février 2008

c très simple :

sContent = file_get_contents('http://www.exemple.com/test.php');
if (!("^",$sContent))//si <h2> n'est pas au début de la chaine le remplacer
    $sContent = str_replace('<h2>','
<h2>',$sContent);  
if (!("
$",$sContent))//si </h2> n'est pas à la fin de la chaine le remplacer
    $sContent = str_replace('</h2>','</h2>
',$sContent);
Messages postés
5
Date d'inscription
mardi 16 décembre 2003
Statut
Membre
Dernière intervention
31 octobre 2007

C'est parfait, merci beaucoup!