Page 1 sur 2

Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 15:35
par seb1945
Bonjour

Je recherche le moyen de récupérer le contenu qui ce trouve entre deux double " " et le mettre dans une variable. Bien sur le nombre de caractère de ce contenu peut changer.

file="toto...78454--titi__zzzzzz tyz------458845545.xlm"

J'ai pense a stripos

voici une partie de mon code

// recherche le nom
$name1 = stripos($corp1, $find1);
if ($name1 !== false)
{
}
$name2 = stripos($corp1, $find2);
if ($name2 !== false)
{
}
$name_tmp= $name1 - $name2;
$name = $name_tmp + 26;

Mais ce code n'est pas bon car il compte le nombre de caractère.

Quelqu'un a une idée ?

SEB

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 15:38
par ghost5922
BOnjour,

si tu as pas d'autre double " " tu peu voir pour un explode
$mavar=explode('"','Bonjour je veux "recupere ce text" avec un explode');
echo $mavar[1];
ou tu peu aussi faire une regex

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 15:53
par J-oxi
dans ce genre la.
<?php
$content ='chaine ou se trouvent les quotes a "extraire", a modifier au besoin.';
$content = preg_match('#"(.+)"#isU',$content,$matches);
echo $matches[0].'<br />';
?>

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 16:36
par seb1945
merci beaucoup pour toutes ces réponses, mais c'est pas tout a fait ça.

En faite dans le fichier fichier il faut rechercher file="et recuperer ce qui a entre les doubles cotes et le mettre dans une variable"

Seb

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 16:44
par ghost5922
Re,
utilise la regex de J-oxi
<?php
$content ='chaine ou se trouvent les quotes a "extraire", a modifier au besoin.';
if(preg_match('#file="(.+)"#isU',$content,$matches)){
echo $matches[1].'<br />';
}
else{
echo 'Aucun';
}
?>

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 16:53
par seb1945
ça marche pas :cry:

il affiche Array

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 16:56
par ghost5922
Ok

fait un print_r() et affiche le resultat
<?php
$content ='chaine ou se trouvent les quotes a "extraire", a modifier au besoin.';
if(preg_match('#file="(.+)"#isU',$content,$matches)){
print_r($matches);
}
else{
echo 'Aucun';
}
?>
normalement tu vas avoir quelque chose comme

Array ( [0] => file="extraire" [1] => extraire )

donc $matches[1] contient bien la valeur

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:11
par seb1945
ça marche pas. Je pense qu'il manque quelque chose.

Peut etre ça. le contenu de mon fichier est dans une variable $boby

$content ='file=" "';
if(preg_match('#file="(.+)"#isU',$body2,$content,$matches)){
print_r($matches);
}
else{
echo 'Aucun';
}

mais ça marche pas non plus

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:14
par ghost5922
A non il a erreur pour toi $content vaut $boby
<?php
//on recherche file="" dans la variable $boby si on trouve un résultat on le sort dans un tableau $matches
if(preg_match('#file="(.+)"#isU',$boby,$matches)){
echo $matches[1].'<br />';
}
else{
echo 'Aucun';
}
?>

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:18
par ghost5922
A oui si tu as plusieurs resultat ( plusieurs file="" dans un meme fichier ) il faut utiliser
<?php
//on recherche file="" dans la variable $boby si on trouve un résultat on le sort dans un tableau $matches
if(preg_match_all('#file="(.+)"#isU',$boby,$matches)){
 foreach($matches as $f){
     echo $f[1].'<br />';
  }

}
else{
echo 'Aucun';
}
?>

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:25
par seb1945
OK mais j'ai toujours Array
pas le contenu des " " :cry:

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:27
par ghost5922
cela donne quoi ?
<?php
//on recherche file="" dans la variable $boby si on trouve un résultat on le sort dans un tableau $matches
if(preg_match('#file="(.+)"#isU',$boby,$matches)){
print_r($matches);
}
else{
echo 'Aucun';
}
?>

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:28
par J-oxi
Tu pourrais nous montré le contenu de la variable dans la quelle tu recherche les doubles quotes.. c'est quoi ça vient d'ou? ...

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:36
par seb1945
il me repond toujours la meme chose que $matches correspond a Array
par contre dans les logs php il me dit que ma variable n'est pas définit ?? Undefined variable: boby

Comprend pas elle est bien définit ma variable body puisque je l'utilise aussi pour couper les 3 dernières lignes

Re: Rechercher un texte entre deux double cote

Posté : 28 mai 2013, 17:38
par ghost5922
Comme le demande J-oxi peu tu mettre le contenu de $boby et ton code on pourra mieux comprendre