Tri d'une page HTML - PHP

Résolu
Chester0101 -  
Gremy87 Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   38
 
Bonjour,

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

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

0
Chester0101
 
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   Statut Membre Dernière intervention   38
 
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
Chester0101
 
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   Statut Membre Dernière intervention   38
 
je fais quelques tests et je te tiens au courant ;)
0
Chester0101
 
Merci bien :)
0
Gremy87 Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   38
 
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
Chester0101
 
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   Statut Membre Dernière intervention   38
 
de rien =)
bonne journée
0