Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1475 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Preg_matche_all récupérer contenu div

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Preg_matche_all récupérer contenu div

n°2246111
snike
Posté le 15-12-2014 à 13:12:10  profilanswer
 

Bonjour,
 
  Je découvre la fonction preg_matche_all mais je ne comprend surement pas toute ses subtilités.
 
Soit ma page suivante dans lequel je souhaites récupérer le contenu de "Mon bloc".

Code :
  1. <div class="Mon_bloc">Blo blo 
  2. <a href="toto.php">TOTO</a> Bla bla
  3. <a href="toto2.php">TOTO2</a>
  4. <div>TEST</div>
  5. Texte à prendre...
  6. </div>
  7. <div>
  8. TEST 2
  9. </div>


 
Je voudrais obtenir :
 

Code :
  1. Blo blo 
  2. <a href="toto.php">TOTO</a> Bla bla
  3. <a href="toto2.php">TOTO2</a>
  4. <div>TEST</div>
  5. Texte à prendre...


 
Mon code :

Code :
  1. $test = preg_match_all('#<div class="Mon_bloc">(.+)</div>#ismU', $contenu, $bloc);

m'affiche :

Code :
  1. <a href="toto.php">TOTO</a> Bla bla
  2. <a href="toto2.php">TOTO2</a>
  3. <div>TEST


 
En effet, il trouve bien le début de ma balise mais s'arrête à la première balise de fin de div !
 
Avez-vous une petite idée.
 
Merci par avance.


Message édité par snike le 15-12-2014 à 16:54:53

---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
mood
Publicité
Posté le 15-12-2014 à 13:12:10  profilanswer
 

n°2246112
rufo
Pas me confondre avec Lycos!
Posté le 15-12-2014 à 13:37:22  profilanswer
 

Je doute que tu y arrives via une regexp à cause de l'imbrication des div :/
Si ton php traite ce bloc en provenance d'une page déjà affichée, je t'aurais conseillé de passer par le javascript, via .innerHTML que tu aurais envoyé à php par du Ajax ;)
 
Si ton bloc contient que ce que t'as mis en premier post, je ferais ça :  
$Contenu = str_replace(array("<div class="Mon_bloc">" ), array("" ), $Bloc);
$Contenu = substr($Contenu, 0, -strlen("</div>" ));
 
Si $Bloc contient plus que ce que t'as mis en premier post, va falloir faire une petite fonction qui compte le nb de <div> ouvertes à l'intérieure de ta <div> puis recherche le dernier </div> qui clôt la dernière <div> ouverte à l'intérieur. Ensuite, y'a plus qu'à trouver la </div> suivante, celle qui clôt ta <div> dont tu veux le contenu...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2246128
snike
Posté le 15-12-2014 à 15:05:12  profilanswer
 

Donc pas possible, ça me rassure.
 
En faites je cherchais une solution propre mais si je dois bidouiller je peux faire.
 
Merci.


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°2246130
snike
Posté le 15-12-2014 à 15:05:48  profilanswer
 

Peut être possible en jouant avec les DOM ?


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°2246161
snike
Posté le 15-12-2014 à 16:54:33  profilanswer
 

Pour information, simplehtmldom semble répondre à mes attentes, pour ceux que cela intéresse :
http://simplehtmldom.sourceforge.net/
 


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°2246439
AMG
Watercooled :D
Posté le 18-12-2014 à 15:18:37  profilanswer
 

Pour les habitués de jQuery, il y a aussi phpQuery qui permet de manipuler une page en PHP :  
https://code.google.com/p/phpquery/


---------------
www.wizit.fr

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Preg_matche_all récupérer contenu div

 

Sujets relatifs
Récupérer le numéro de la case contenant le boutonRemplacer contenu texte entre 2 balises en batch
Insérer une ligne en dessous d'un contenu précisPowerShell - Récupérer le répertoire d'un fichier donné
Récupérer TOUT les fichiers contenus dans TOUT les dossiersRecuperer des fichiers txt d'un ftp sur access 2013
Récupérer un texte entre HTML et PHPRécupérer une liste de ville avec PHP/Curl
Récupérer une variable PHP dans une shadowbox JSComment recuperer la programation de mon site
Plus de sujets relatifs à : [RESOLU] Preg_matche_all récupérer contenu div


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR