Tri d'une page HTML - PHP

Résolu/Fermé
Chester0101 - 12 avril 2011 à 09:17
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 - 12 avril 2011 à 10:41
Bonjour,
Dans le cadre de mon stage, j'ai besoin d'un script php pour lire une page php et trier ses information pour les mettre dans un tableauavec comme délimiteur <||>pour ce qui se trouvera dans la première colonne et |=| pour se qui se trouvera dans la deuxième colonne.
Merci de votre aide d'avance.


A voir également:

9 réponses

Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 09:32
Bonjour,

relis le post en te mettant a notre place, euh waou^^

pas simple à comprendre sans un peu plus d'explications...

0
En fait, avec mon script php je dois lire le contenu d'une page HTML ( qui ne contient que des chaînes de caractères heureusement ^^ ). J'ai trouvé comment faire ceci avec file_get_contents(). Maintenant, je dois trier le texte qui a été lu afin de mettre les information dans un tableau.
Je parlais des délimiteur tout à l'heure, voila une ligne du texte :
<||>MSG|=|Une mise à jour en version 3.50.61 est disponible,
Il faudrait que lorsque on tombe sur <||> ça mette ce qui vient ensuite dans une première colonne ( ici MSG ) et ce qui vient après |=| aille dans une deuxième colonne ( ici Une mise A jour ..... ).
J'espère avoir été plus clair :)
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 09:53
c'est beaucoup plus clair oui ^^

$texte=file_get_contents("page.html");
$tab=explode("<||>", $texte);

avec ca tu vas donc avoir un tableau qui contiendra donc ton type d'info (MSG) le délimiteur |=| et le message
exemple
Array
{
[0]=>"MSG|=|Une mise à jour en version 3.50.61 est disponible"
}

si sur ce tableau tu refait un explode tu aura je pense ce qu il te faut.
$tabfinale=Array();
foreach ($tab as $ligne)
{
$tabfinal[]=explode('|=|',$ligne);
}

test tout ça:

$texte=file_get_contents("page.html");
$tab=explode("<||>", $texte);
$tabfinal=Array();
foreach ($tab as $ligne)
{
$tabfinal[]=explode('|=|',$ligne);
}
0
C'est vrai que je n'avais pas penser au explode, mais malheureusement quand je souhaite lire le tableau avec un echo : echo $tabfinal[1]; par exemple, ça me marque dans tous les cas "Array"
Est ce parce qu'il y a plusieurs délimiteurs

( début du texte : <||>DRP_ERREUR|=|0<||>MSG_ERREUR|=|<||>DRP_MAJ|=|1<||>MSG_INFO|=|Une mise à jour en version 3.50.60 est disponible<||>MSG_INFO2|=|Une mise à jour en version 3.50.60 est disponible<||>MSG|=|Une mise à jour en version 3.50.60 est disponible, )

ou est-ce parce que je fait le file_get_contents() sur une page web en html sachant qu'il n'y a que du texte comme celui ci dessus et que lorsque je fais echo $texte; ça me retourne bien le texte contenu dans la page.
0

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

Posez votre question
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 10:17
je fais quelques tests et je te tiens au courant ;)
0
Merci bien :)
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
Modifié par Gremy87 le 12/04/2011 à 10:25
donc voila, c'est logique que ca te disse que c'est un array. pour afficher un tableau tout bien fait en php il faut utiliser print_r() entre des balises <pre></pre>

voila le résultat après le premier explode =)
----TAB------Array 
( 
    [0] =>  
    [1] => DRP_ERREUR|=|0 
    [2] => MSG_ERREUR|=| 
    [3] => DRP_MAJ|=|1 
    [4] => MSG_INFO|=|Une mise à jour en version 3.50.60 est disponible 
    [5] => MSG_INFO2|=|Une mise à jour en version 3.50.60 est disponible 
    [6] => MSG|=|Une mise à jour en version 3.50.60 est disponible 
) 


et après le second:
----TABFINAL------Array 
( 
    [0] => Array 
        ( 
            [0] =>  
        ) 

    [1] => Array 
        ( 
            [0] => DRP_ERREUR 
            [1] => 0 
        ) 

    [2] => Array 
        ( 
            [0] => MSG_ERREUR 
            [1] =>  
        ) 

    [3] => Array 
        ( 
            [0] => DRP_MAJ 
            [1] => 1 
        ) 

    [4] => Array 
        ( 
            [0] => MSG_INFO 
            [1] => Une mise à jour en version 3.50.60 est disponible 
        ) 

    [5] => Array 
        ( 
            [0] => MSG_INFO2 
            [1] => Une mise à jour en version 3.50.60 est disponible 
        ) 

    [6] => Array 
        ( 
            [0] => MSG 
            [1] => Une mise à jour en version 3.50.60 est disponible 
        ) 

) 


donc en $tabfinal[4][0] tu as MSG_INFO par exemple associé a "Une mise à jour en version 3.50.60 est disponible" en $tabfinal[4][1]

voilou

RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
0
Eh ben un grand merci à toi!
Je confirme ça marche très bien :).
Encore merci, je vais pouvoir continuer aisément et ça m'a fait apprendre l'utilisation du explode() dans les grandes lignes ^^.

Une bonne journée à toi.
Cordialement
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 10:41
de rien =)
bonne journée
0