Aller au contenu

Traitement de données


Sujets conseillés

Posté

Salut je bloque sur un petit script pour traiter le code suivant

<table>

<tr>

<td><h4>Nom de la commune</h4><strong>Lisle-en-Rigault</strong></td>

<td><h4>Région</h4><a href="./regions.html?mode=detail&reg=57" title="fiche de la région">Lorraine</a></td>

</tr>

</table>

<div class="donnees">

<h4>Généralités historiques</h4>

<p><ul><li>Occupation préhistorique.</li>

</ul></p>

<h4>Vestiges préhistoriques et antiques</h4>

<p><ul><li>Grottes dans la vallée du Boulou.</li>

</ul></p>

Avec le script suivant j'arrive a récupérer comme info le "nom de la commune" mais pas les "Vestiges préhistoriques et antiques"

$fp = fopen("...", "r");

while (!feof($fp)) {

$ligne = fgetss($fp, 4096);

if ( strstr($ligne,'Nom de la commune'))

{

$commune = substr(strstr($ligne,'Nom de la commune'),17) ;

}

if ( strstr($ligne,'Région'))

{

$region = substr(strstr($ligne,'Région'),6) ;

}

if ( strstr($ligne,'Vestiges préhistoriques et antiques'))

{

$vpa = substr(strstr($ligne,'Vestiges préhistoriques et antiques'),36) ;

}

}

je ne comprend pas pourquoi cela fonctionne pour le nom de la commune et la région et non pour le reste ?

Posté

'Jour,

$vpa = substr(strstr($ligne,'Vestiges préhistoriques et antiques'),35);

Je ne compte que 35 caractères, ou j'ai besoin de lunettes... ;)

xpatval

Posté (modifié)

Bien vu et bien compté

mais ca ne change rien...

Il semble que comme je lit les info ligne par ligne et que les info qui m'intérresse sont a la ligne en dessous je suis bloqué ?

il faudrait pouvoir passer a la ligne suivante

Modifié par Calli
Posté

Salut

Si j'ai bien compris tu veux récupérer le texte précédé par titre du texte.

Je pense que ça serai plus simple en utilisant la fonction file()

 
$tab = file(.....);
$nb = count($tab);
$zu = "false";

for($i;$i<$nb;$i)
{
$ligne = $tab[$i];

//-------------------------------------------------------------- 1

//et la tu commence par tester si $zu == "true"
//et dans ce cas tu récupére le texte qui t'intérresse

(.......)

//sans oublier de mettre $zu = false
break; --> pour finir le tour en cours et ne pas faire les test suivants

//-------------------------------------------------------------- 2
//ensuite tu teste si le texte correspondant a titre ne se trouve pas a coté de titre
// cad qu'il se trouve a la ligne suivante.
//et dans ce cas tu met : $zu = "true"


//-------------------------------------------------------------- 3
//Et pour finir si $zu == "false" et que le texte correspondant a titre se trouve a coté de titre
//tu récupére le texte a coté de titre comme tu le fait



}

j'espére que c clair

ça t'oblige a recommencer ton script mais je suis pas trop a l'aise avec l'autre méthode

A+

Posté

clair pas trop

serait il possible d'avoir un exemple pour

if ( strstr($ligne,'Vestiges préhistoriques et antiques'))
{
$vpa = substr(strstr($ligne,'Vestiges préhistoriques et antiques'),36);
}

Posté

re

avant de te répondre j'aimerai connaitre le contexte dans lequel tu as écris ton script?

a+

re re

et aussi savoir ce que tu n'as pas compris?

A+

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...