IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création d'une méthode permettant de transformer un tableau de donnée en un string réprésentant unélément html


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut Création d'une méthode permettant de transformer un tableau de donnée en un string réprésentant unélément html
    Bonjour à toutes et à tous,
    Je viens vers vous car cela fait deux jours que j'essaye de créer une fonction qui transforme des données d'un array en un string qui sera implémenté pour créer un élément html.

    Je récupère les heures de travail d'un médecin sous la forme d'un tableau comme celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    0 => "01:00|02:00[v]"
        1 => "07:00|08:00[o]"
        2 => "09:00|10:00[o]"
        3 => "11:00|12:00[o]"
        4 => "13:00|14:00[o]"
        5 => "15:00|16:00[o]"
        6 => "17:00|18:00[v]"
        7 => "19:00|20:00[v]"
        8 => "21:00|22:00[v]"
        9 => "23:00|00:00[v]"
    et je souhaiterais pouvoir transformer cet array en ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $str = '<tr class="work">
    <td>01:00|02:00</td>
    </tr>
     
    <tr class="home">
    <td>07:00|08:00<br/>09:00|10:00<br />11:00|12:00<br />13:00|14:00<br />15:00|16:00</td>
    </tr>
     
    <tr class="work">
    <td>17:00|18:00<br/>19:00|20:00<br />21:00|22:00<br />23:00|00:00</td>
    </tr>'
    Mon problème vient du fait que j'arrive pas à ouvrir les différentes
    <tr class="#"><tr />
    lorsque c'est nécessaire.
    Seconde chose, c'est qu'il faut que tout se fasse en PHP (pas d'utilisation de JS).

    Si quelqu'un a une idée je suis grandement preneur
    Merci d'avance aux personnes qui prendront le temps de regarder

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Cette question serait mieux dans le forum PHP, car, algorithmiquement, il n'y a pas de question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ cat fichier.txt
    0 => "01:00|02:00[v]"
    1 => "07:00|08:00[o]"
    2 => "09:00|10:00[o]"
    3 => "11:00|12:00[o]"
    4 => "13:00|14:00[o]"
    5 => "15:00|16:00[o]"
    6 => "17:00|18:00[v]"
    7 => "19:00|20:00[v]"
    8 => "21:00|22:00[v]"
    9 => "23:00|00:00[v]"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ awk -F '[]"[]' 'BEGIN{activite["v"]="work";activite["o"]="home";} (($3!=oa)&&(al==1)){print "</td>\n</tr>\n";} ($3!=oa){printf "<tr class=\""activite[$3]"\">\n<td>";oa=$3;al=1;ae=0;} (ae>0){printf "<br />";} {printf $2;ae++;} END{if (NR>0) {print "</td>\n</tr>";}}' fichier.txt
    <tr class="work">
    <td>01:00|02:00</td>
    </tr>
     
    <tr class="home">
    <td>07:00|08:00<br />09:00|10:00<br />11:00|12:00<br />13:00|14:00<br />15:00|16:00</td>
    </tr>
     
    <tr class="work">
    <td>17:00|18:00<br />19:00|20:00<br />21:00|22:00<br />23:00|00:00</td>
    </tr>
    En prenant ] [ " comme séparateurs, le champ 3 donne le type de travail et le champ 2 l'horaire. Il ne reste plus qu'à afficher habillement tes données. L'exemple que je donne est en console linux (bash). Charge pour toi de trouver l'équivalent php. La clé est de bien parser ton texte.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut Merci pour la piste.
    Bonjour Flodelarab,
    Merci beaucoup pour l'aide. en effet je viens d'aller me renseigner sur le langage AWK, cela me donne de bonne piste pour essayer de trouver un équivalent php.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/10/2017, 17h55
  2. Réponses: 1
    Dernier message: 24/03/2011, 07h46
  3. Création d'une méthode de recherche dans le BDC SharePoint 2010
    Par luelo2b dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 13/01/2011, 09h07
  4. Exercice (création d'une méthode)
    Par romain1 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 07/09/2008, 12h46
  5. Création d'une méthode
    Par Henri dans le forum 2D
    Réponses: 2
    Dernier message: 14/07/2008, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo