Version complète: sur le forum Webmaster Hub : Traitement de données
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Calli
Salut je bloque sur un petit script pour traiter le code suivant

CITATION
<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&amp;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"

CITATION
$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 ?
xpatval
'Jour,

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


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

xpatval
Calli
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
manito
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()

CODE

$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+
Calli
clair pas trop

serait il possible d'avoir un exemple pour


CODE
if ( strstr($ligne,'Vestiges préhistoriques et antiques'))
{
$vpa = substr(strstr($ligne,'Vestiges préhistoriques et antiques'),36);
}
manito
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+
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.