begin process at 2012 05 31 17:01:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Récupération de texte entre des balises - PHP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupération de texte entre des balises - PHP

samedi 14 août 2010 à 01:38:20 | Récupération de texte entre des balises - PHP

tsh9

Bonjour,

j'aimerais récupérer tout le texte entre les balises <City>Texte</City> d'un fichier XML.
Malheureusement je ne maîtrises pas les expressions régulières, donc j'imagine que le problème vient de la.

J'obtiens trois fois la première occurence (Oliphant Ont Oliphant Ont Oliphant Ont), ce que j'aimerais c'est (Oliphant Ont - Daniel's Harbour, Nfld - Badger, Nfld)

En résumé j'aimerais extraire dans un tableau toute les villes entres les balises <City></City>.
Toute aide serait grandement apprécier!

Merci.

print '<select name="villes">';

$pattern = '/<\/Country>\s*(<City>)([^<]+)/i';
$subject = '<Country>Canada</Country> <City>Oliphant Ont</City> </Table> <Table> <Country>Canada</Country> <City>Daniel\'s Harbour, Nfld</City> </Table> <Table> <Country>Canada</Country> <City>Badger, Nfld</City> </Table> <Table> ';
preg_match($pattern, $subject, $matches);

for($i=0; $i< count($matches); $i++) {
print "<option value =".$matches[2].">".$matches[2]."</option>";
}

print '</select>';

?>





samedi 14 août 2010 à 13:23:42 | Re : Récupération de texte entre des balises - PHP

genetApt151

Réponse acceptée !
Salut,

Il faut utiliser preg_match_all(), preg_match() s'arrête à la première valeur matché. Aussi dans la boucle for tu écris toujours la même valeur $matches[2].

Code PHP :
function lireBalises($text, $tag) 
{
  $pattern = '#<'.$tag.'([^>]*)>(.+)</'.$tag.'>#isU';
  preg_match_all($pattern,$text,$matches);
 			
  return $matches[2];
}

$subject = '<Country>Canada</Country> <City>Oliphant Ont</City> </Table> <Table> <Country>Canada</Country> <City>Daniel\'s Harbour, Nfld</City> </Table> <Table> <Country>Canada</Country> <City>Badger, Nfld</City> </Table> <Table> ';
$villes = lireBalises($subject,"city");

echo '<select name="villes">';
foreach($villes as $ville)
{ 
  $ville = trim($ville);
  if(!empty($ville))
    echo "<option value =".$ville.">".$ville."</option>";
}
echo '</select>';


samedi 14 août 2010 à 13:34:05 | Re : Récupération de texte entre des balises - PHP

kohntark

Membre Club
Réponse acceptée !

Salut,

... et puis s'il s'agit d'un fichier ou d'une string XML sans doute est il plus simple et plus flexible d'utiliser les fonctions PHP natives (DomDocument, ...)

Cordialement,


Kohntark -

samedi 14 août 2010 à 14:42:38 | Re : Récupération de texte entre des balises - PHP

tsh9

Bonjour,

Je vous remercie énormément d'avoir répondu à ma question. Le découragement commençais à prendre le dessus.

Encore une fois, mille mercis!

tsh9


Cette discussion est classée dans : texte, balises, canada, oliphant, nfld


Répondre à ce message

Sujets en rapport avec ce message

Regexp [ par coockiesch ] Salut!J'ai du texte avec des balises [code_php][/code_php]Ce qui est entre les balises est multi-lignes et je ne sais comment faire, j'ai testé qq tru extraire texte entre balises [ par scoder ] bonjour je récupère le contenu d'une ligne d'une page web dans une variable, et j'aimerai extraire le texte qu'il y a entre les balises et de cette Suppression des balises <FONT> [ par halfman ] Bonjours à tousJe voudrai supprimer toutes les balises présentent dans un texte. Ce texte est enregistré dans une base de donnée suite à la saisie da Problème avec eregi_replace [ par bice3 ] Bonjour,J'aimerais voir si quelqu'un pourrait m'aider pour une question sur eregi_replace.J'ai un texte avec deux balises qui sont avec le nom de mon Comment prendre un texte entre deux balises svp? [ par Linuss ] Bonjour à tous, J'aurais voulu savoir comment faire pour prendre un texte en php qui est par exemple entre deux balises svp?ex : Texte ici      Second Récuperer un texte entre deux balises spécifiques [ par yvain91 ] Bonjour j'aurai besoin de récupérer du texte dans un fichier que j'ai ouvert avec la fonction fopen. Ce texte se trouve entre deux balises facilement Expressions régulières pour la suppression de balises [ par f6xara ] J'ai fait un module de template transformant tout ce qui se trouve entre {} par la variable équivalente.Si la variable n'est pas trouvées, alors, on s Supprimer texte entre 2 balises [ par Monico9385 ] Bonjour tout le monde, je viens vous voir car j'ai un gros souci, j'aimerai supprimer du texte qui se trouve entre 2 balises de commentaires. J'ai be Redimensionner une image entre deux balises [ par thecomputerman ] Bonjour,J'ai un petit soucis avec le redimensionnement d'images. Tout d'abord quand une image est insérée dans un texte c'est entre deux balises [img] supprimer le contenu des balises script [ par caviar ] Saluté ...j'ai un petit casse tête à résoudre ...j'aimerai filtrer les balises scripts dans un code html et les supprimerimaginon que j'ai en html ava


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales