Comment obtenir le resultat de strip_tags($resultat_regex,"") dans un
tableau
$n[0] = Bordeaux
$n[1] = /details_MZ-B.htm
$n[2] = St Andre de C
$n[3] = 400,00 euro
$n[4] = /images/bleu.png
$n[5] = Centre ville
$n[6] = oui
Pour le moment je n'obtiens que
"BordeauxSt Andre de C400,00¤Centre villeOui"
Totalement inexploitable
:'(
J'ai pensé en vrac a :
- Abandonner mon projet ( :oÞ ]
- Utiliser une classe php pour parser $resultat_regex comme du html et
se balader de noeud en noeud ( :-? )
- Repasser $resultat_regex dans une deuxieme regex plus complete encore
que la premiere :o)
- Faire un script perso pour me balader entre les balises et les
attributs et extraire les valeurs du tableau
- Me mettre à la recherche d'un super trip_tags qui ne ferai pas que
supprimer les tags
- Et plein d'autres choses comme le XSLT mais je m'arrete ...
Je suis en panne seche !
;o) :'( ^^
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Comment obtenir le resultat de strip_tags($resultat_regex,"") dans un tableau $n[0] = Bordeaux $n[1] = /details_MZ-B.htm $n[2] = St Andre de C $n[3] = 400,00 euro $n[4] = /images/bleu.png $n[5] = Centre ville $n[6] = oui
Pour le moment je n'obtiens que "BordeauxSt Andre de C400,00¤Centre villeOui"
Normal. Visiblement strip_tags() n'est pas ce dont tu as besoin.
J'ai pensé en vrac a :
- Repasser $resultat_regex dans une deuxieme regex plus complete encore que la premiere :o)
Ça ne marchera probablement pas du premier coup : à essayer petit morceau par petit morceau, par exemple en commençant par $l1 et $l2 seulement, puis en ajoutant $l3, etc., et en corrigeant au besoin.
Comment obtenir le resultat de strip_tags($resultat_regex,"") dans un
tableau
$n[0] = Bordeaux
$n[1] = /details_MZ-B.htm
$n[2] = St Andre de C
$n[3] = 400,00 euro
$n[4] = /images/bleu.png
$n[5] = Centre ville
$n[6] = oui
Pour le moment je n'obtiens que
"BordeauxSt Andre de C400,00¤Centre villeOui"
Normal. Visiblement strip_tags() n'est pas ce dont tu as besoin.
J'ai pensé en vrac a :
- Repasser $resultat_regex dans une deuxieme regex plus complete encore
que la premiere :o)
Ça ne marchera probablement pas du premier coup : à essayer petit
morceau par petit morceau, par exemple en commençant par $l1 et $l2
seulement, puis en ajoutant $l3, etc., et en corrigeant au besoin.
Comment obtenir le resultat de strip_tags($resultat_regex,"") dans un tableau $n[0] = Bordeaux $n[1] = /details_MZ-B.htm $n[2] = St Andre de C $n[3] = 400,00 euro $n[4] = /images/bleu.png $n[5] = Centre ville $n[6] = oui
Pour le moment je n'obtiens que "BordeauxSt Andre de C400,00¤Centre villeOui"
Normal. Visiblement strip_tags() n'est pas ce dont tu as besoin.
J'ai pensé en vrac a :
- Repasser $resultat_regex dans une deuxieme regex plus complete encore que la premiere :o)
Ça ne marchera probablement pas du premier coup : à essayer petit morceau par petit morceau, par exemple en commençant par $l1 et $l2 seulement, puis en ajoutant $l3, etc., et en corrigeant au besoin.
Stefane
Merci Olivier de ton aide. Mon problème est résolu depuis l'intervention de Thibaut sur un autre forum php Je fais suivre la solution de Thilbaut Un grand merci a vous 2 Cordialement, Stefane :D :D :D :D :D :D :D :D -------------------------------------- Salut, Les regexps c'est vraiment indispensable pour faire du traitement de texte, il ne faut donc pas abandonner courage. J'ai mis ton texte de sorti d'apres la premiere regexp, et je t'ai donné la regexp qui permet de matcher le tout pour récupérer les données : <? $str = "<tr style="background-color: #FFF"> <td><input type="checkbox" name="p" value="MZ-B" /></td> <td>Bordeaux</td> <td style="text-align: left"> <a href="/details_MZ-B.html">St Andre de C</a> </td> <td class="Prix">400,00 €</td> <td><img src="/images/bleu.png" width="16" height="18" alt="En cours d'etude" /></td> <td>Centre ville</td><td>Oui</td><td></td><td style="text-align: left"></td> </tr> "; print "<textarea cols="120" rows="30">"; print_r($str); preg_match("/^<tr.*?<td><.*?</td>.*?<td>(.*?)</td>.*?<td.*?<a href="(.*)">(.*)</a>.*?</td>.*?<td.*?>(.*?)</td>.*?<td><img src="(.*?)".* /></td>.*?<td>(.*?)</td><td>(.*?)</td>.*/ms",$str,$matches);
print_r($matches); print "</textarea>"; ?>
la variable $matches est un tableau qui contient exactement ce que tu veux (à l'exception de $matches[0] qui sera égal à $str ou presque). Il se peut que cette RE ne matche pas exactement tous tes blocs de sorti, il faudra donc sans doute que tu l'adapte plus ou moins pour bien tout récupérer. A noter l'utilisation des .*? pour éviter qu'il ne prenne toute la chaine à chaque fois mais qu'il s'arrete bien "au plus tot" dans la chaine. A noter aussi l'utilisation des flags /ms en fin de RE, qui sont une condition sine qua none pour matcher parmi plusieurs lignes et considérer les r et n comme des caractères normaux matchés par "."
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Merci Olivier de ton aide.
Mon problème est résolu depuis l'intervention de Thibaut sur un autre
forum php
Je fais suivre la solution de Thilbaut
Un grand merci a vous 2
Cordialement,
Stefane
:D :D :D :D :D :D :D :D
--------------------------------------
Salut,
Les regexps c'est vraiment indispensable pour faire du traitement de
texte, il ne faut donc pas abandonner courage.
J'ai mis ton texte de sorti d'apres la premiere regexp, et je t'ai
donné la regexp qui permet de matcher le tout pour récupérer les
données :
<?
$str = "<tr style="background-color: #FFF">
<td><input type="checkbox" name="p" value="MZ-B" /></td>
<td>Bordeaux</td>
<td style="text-align: left">
<a href="/details_MZ-B.html">St Andre de C</a>
</td>
<td class="Prix">400,00 €</td>
<td><img src="/images/bleu.png" width="16" height="18"
alt="En cours d'etude" /></td>
<td>Centre ville</td><td>Oui</td><td></td><td style="text-align:
left"></td>
</tr>
";
print "<textarea cols="120" rows="30">";
print_r($str);
preg_match("/^<tr.*?<td><.*?</td>.*?<td>(.*?)</td>.*?<td.*?<a
href="(.*)">(.*)</a>.*?</td>.*?<td.*?>(.*?)</td>.*?<td><img
src="(.*?)".*
/></td>.*?<td>(.*?)</td><td>(.*?)</td>.*/ms",$str,$matches);
print_r($matches);
print "</textarea>";
?>
la variable $matches est un tableau qui contient exactement ce que tu
veux (à l'exception de $matches[0] qui sera égal à $str ou presque).
Il se peut que cette RE ne matche pas exactement tous tes blocs de
sorti, il faudra donc sans doute que tu l'adapte plus ou moins pour
bien tout récupérer.
A noter l'utilisation des .*? pour éviter qu'il ne prenne toute la
chaine à chaque fois mais qu'il s'arrete bien "au plus tot" dans la
chaine.
A noter aussi l'utilisation des flags /ms en fin de RE, qui sont une
condition sine qua none pour matcher parmi plusieurs lignes et
considérer les r et n comme des caractères normaux matchés par "."
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Merci Olivier de ton aide. Mon problème est résolu depuis l'intervention de Thibaut sur un autre forum php Je fais suivre la solution de Thilbaut Un grand merci a vous 2 Cordialement, Stefane :D :D :D :D :D :D :D :D -------------------------------------- Salut, Les regexps c'est vraiment indispensable pour faire du traitement de texte, il ne faut donc pas abandonner courage. J'ai mis ton texte de sorti d'apres la premiere regexp, et je t'ai donné la regexp qui permet de matcher le tout pour récupérer les données : <? $str = "<tr style="background-color: #FFF"> <td><input type="checkbox" name="p" value="MZ-B" /></td> <td>Bordeaux</td> <td style="text-align: left"> <a href="/details_MZ-B.html">St Andre de C</a> </td> <td class="Prix">400,00 €</td> <td><img src="/images/bleu.png" width="16" height="18" alt="En cours d'etude" /></td> <td>Centre ville</td><td>Oui</td><td></td><td style="text-align: left"></td> </tr> "; print "<textarea cols="120" rows="30">"; print_r($str); preg_match("/^<tr.*?<td><.*?</td>.*?<td>(.*?)</td>.*?<td.*?<a href="(.*)">(.*)</a>.*?</td>.*?<td.*?>(.*?)</td>.*?<td><img src="(.*?)".* /></td>.*?<td>(.*?)</td><td>(.*?)</td>.*/ms",$str,$matches);
print_r($matches); print "</textarea>"; ?>
la variable $matches est un tableau qui contient exactement ce que tu veux (à l'exception de $matches[0] qui sera égal à $str ou presque). Il se peut que cette RE ne matche pas exactement tous tes blocs de sorti, il faudra donc sans doute que tu l'adapte plus ou moins pour bien tout récupérer. A noter l'utilisation des .*? pour éviter qu'il ne prenne toute la chaine à chaque fois mais qu'il s'arrete bien "au plus tot" dans la chaine. A noter aussi l'utilisation des flags /ms en fin de RE, qui sont une condition sine qua none pour matcher parmi plusieurs lignes et considérer les r et n comme des caractères normaux matchés par "."
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net