Extraction code source balise

aliasdidou Messages postés 5 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 11 mai 2010 - 7 mai 2010 à 10:51
aliasdidou Messages postés 5 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 11 mai 2010 - 11 mai 2010 à 14:32
Bonjour,

Après avoir consulté vos différents codes sources sur le site, pour l'extraction d'un contenu entre des balises, j'en ai retiré le code suivant :

<?php
$html="	<html>
<head>
</head>


Bonjour monsieur
Ca va bien?!

</html>";

$pattern="!
]+)?>(.*)!Ui";
preg_match_all($pattern,$html,$matches);
echo($matches[0][0]);

?>


Cependant, il me reste un problème que je n'arrive pas à résoudre. Ce code fonctionne pour les balises
mais pas avec les balises ou <html>. Autrement dit, je n'arrive pas à récupérer le code source quand d'autres balises sont à l'intérieur.

Merci d'avance de vos réponses.

aliasdidou

9 réponses

devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
8 mai 2010 à 02:13
salut
c'est normal puisque le code que t'a mis cherche que le contenu des balise br

]+)?>(.*) pour pouvoir le reutiliser pour les autres balise tu change le br par body ou html etc..
0
aliasdidou Messages postés 5 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 11 mai 2010
8 mai 2010 à 09:29
Non, c'est indépendant de ça. Désolé, j'aurais du un peu plus préciser. Si j'exécute le code du haut, il me retourne "Bonjour monsieur".

Si j'exécute maintenant le code suivant :

<?php
$html="	<html>

<head>
</head>


Bonjour monsieur
Ca va bien?!

</html>";


$pattern="!]+)?>(.*)!Ui";
preg_match_all($pattern,$html,$matches);
echo($matches[0][0]);

?>


Il ne me retourne rien, alors que j'aimerais avoir "Bonjour monsieur. Ca va bien?!"

Tu situes un peu mieux le problème?
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
8 mai 2010 à 09:33
essaye donc avec sa (.*?)
0
aliasdidou Messages postés 5 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 11 mai 2010
8 mai 2010 à 11:52
Non, je n'ai toujours rien avec ça...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dav_c Messages postés 194 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 décembre 2015
11 mai 2010 à 03:22
Ton Ca va bien?!
n'est pas entre tes balise br no wonder que sa marche po.
Mes ton Ca va bien?! entre br pis sa devrai marcher.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 mai 2010 à 08:40
Salut,


Avec un truc dans le genre peut être :
<?php
$html = "<html>


<head>
</head>


Bonjour monsieur
Ca va bien?!

</html>";

$pattern = '`]*>(.*)`is';

preg_match($pattern, $html, $matches);
echo $matches[1];
?>


Cordialement,

Kohntark -
0
aliasdidou Messages postés 5 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 11:08
En effet, c'est presque ce que je veux!!
Je suis encore une fois désolé, mais je ne suis pas assez précis.

Avec le dernier code, j'obtiens :

Bonjour monsieur
Ca va bien?!

J'aimerais juste conserver les balises
soit :


Bonjour monsieur
Ca va bien?!

Merci beaucoup pour tout!
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 mai 2010 à 13:18
Avec le dernier code, j'obtiens :

Bonjour monsieur
Ca va bien?!


Heu, non, tu obtiens :


Bonjour monsieur
Ca va bien?!

Bien évidemment si tu regardes ce résultat dans un browser tu ne verras pas les balises
puisqu'elles sont interprétées.

Je ne sais pas trop ce que tu cherches à faire mais j'espère que le HTML est invariable car s'il s'agit de parser des pages HTML différentes ça ne fonctionnera pas longtemps en procédant ainsi.

Cordialement,


Kohntark -
0
aliasdidou Messages postés 5 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 14:32
Très juste!

C'est uniquement pour s'appliquer à des cas très simples.

Merci pour tes réponses!
0
Rejoignez-nous