Extraire chaine de caractère

Résolu/Fermé
Diogon Messages postés 164 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 8 janvier 2014 - 9 juin 2011 à 09:16
Diogon Messages postés 164 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 8 janvier 2014 - 9 juin 2011 à 19:41
Salut la compagnie,

voilà, en fait j'aimerais extraire (en php) dans un tableau tous les passages compris entre [id] et [/] d'une chaine de caractères...

J'ai essayé avec preg_match_all mais toute ce qu'il me retourne c'est "array" soit un tableau vide. Pourtant il y a au moins quatre extraits de ce type dans la chaine de caractères que j'encode...

Voici mon code (en simplifié, ma chaine est appelée plus haut):

	
function extr($chaine){
        $pattern = '/[id](.*)[/]/'; 
	preg_match_all($pattern, $chaine, $matches); 
	echo $matches;
}


merci d'avance à tous


A voir également:

8 réponses

Souhaites-tu extraire les passages compris :
1/ entre la chaine de caractères "[id]" et la chaine de caractères "[/]",
2/ ou entre l'un des carcatères "i" ou "d", et le caractère "/" ?
Si la réponce est 1/, il y a une erreur de syntaxe dans ton expression régulière : Les caractères "[", "]", et "/" sont des caractères spéciaux. Il faut les faire précéder d'un antislash lorsque tu souhaites les utiliser comme caractères normaux.
Remplacer : $pattern = '/[id](.*)[/]/';
Par : $pattern = '/\[id\](.*)\[\/\]/';
Plus d'info : http://www.commentcamarche.net/contents/javascript/jsregexp.php3
1
Bacchus69 Messages postés 118 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 8 novembre 2017 4
9 juin 2011 à 10:17
Hello,

tu as déjà essayé la fonction extract de php ?
0
Profil bloqué
9 juin 2011 à 12:09
Ou même explode
0
Diogon Messages postés 164 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 8 janvier 2014
9 juin 2011 à 10:23
je ne comprends pas très bien, il me semblait que extract prenait des données au sein d'un tableau? Ce que j'essaie de faire c'est au contraire de mettre des extrait de ma chaine de caractère dans un tableau
0
Bacchus69 Messages postés 118 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 8 novembre 2017 4
9 juin 2011 à 10:27
Tu veux extraire pour mettre dans un tableau ?

D'où est-ce que tu veux précisemment les extraire ?
0

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

Posez votre question
Diogon Messages postés 164 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 8 janvier 2014
9 juin 2011 à 10:30
Ce que je veux c'est extraire toutes les sections de ma chaines comprises entre [id] et [/]
0
Diogon Messages postés 164 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 8 janvier 2014
9 juin 2011 à 10:53
merci mais le résultat est le même
0
<?php 
$chaine = 'tata[id]toto1[/]tata[id]toto2[/]tata[id]toto3[/]tata[id]toto4[/]tata'; 
$pattern = '/\[id\]([^[]*)\[\/\]/';  
preg_match_all($pattern, $chaine, $matches);  
echo $matches[0][0].'<br>';  // [id]toto1[/]
echo $matches[0][1].'<br>';  // [id]toto2[/]
echo $matches[0][2].'<br>';  // [id]toto3[/]
echo $matches[0][3].'<br>';  // [id]toto4[/]
echo $matches[1][0].'<br>';  // toto1
echo $matches[1][1].'<br>';  // toto2
echo $matches[1][2].'<br>';  // toto3
echo $matches[1][3].'<br>';  // toto4
?> 
0
Diogon Messages postés 164 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 8 janvier 2014
9 juin 2011 à 19:41
merci gloglop, en fait j'avais fait une faute de frappe en testant ta solution et mis un backslash au mauvais endroit ^^

encore merci
0