Page 1 sur 1

rechercher et extraitre une chaine dans un texte

Posté : 30 avr. 2007, 12:07
par jeanmed
Bonjour,

Je voudrais extraire d'une chaine une partie exemple :

<div class="volet">Volet : rouge</div>

je voudrais avoir : $volet="volet";
et $coul="rouge";

Si vous avez une idée merci de votre aide

Posté : 30 avr. 2007, 12:35
par thehawk
regarde la fonction preg_replace()

Posté : 30 avr. 2007, 19:26
par dogmongo
salut

essai explode

$chaine="Volet:rouge";
$tab= explode(":",$chaine);

$volet=$tab['0'];
$coul=$tab['1'];

si c'est en sortie de requete tu devrais pouvoir y arriver comme ca

à savoir ton tableau commence toujours à 0 ,mais il existe une manipe pour le mettre à 1

++

Posté : 30 avr. 2007, 19:56
par sadeq
regarde les expressions réguliaires et notamment preg_match()

Exemple:
si je veux récupérer une simple adresse d'un href :
<?php 
//soit le texte de recherche suivant:
$texte = "<a href='adresse'>ceci est un lien</a>";

//si je veux récupérer l'adresse dans href j'écrirai l'expression suivante: href='(.*)'
//où (.*) veut dire: 0~N caractères 
//et les prenthèses désignent un élément à retourner dans la réponse de preg_match
preg_match("#href='(.*)'#", $texte, $reponse);

//pour voir la réponse de l'expression, consulter le tableau $reponse retourné par preg_match:
print_r($reponse);
//en fait, la valeur recherchée doit se trouver à partir de la 2° case du tableau $reponse
?>
Et si je veux préciser dans qu'il s'agit bien d'un href d'un lien hypertexte :
<?php 
...
preg_match("#<a.*href='(.*)'.*>.*</a>#", $texte, $reponse);
...
?>
Et si je souhaite récupérer le texte du lien, en même temps que l'adresse:
<?php 
...
//2 parenthèses = 2 réponses
preg_match("#<a.*href='(.*)'.*>(.*)</a>#", $texte, $reponse);
...
?>