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

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] prendre une partie


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 27
    Points
    27
    Par défaut [SimpleXML] prendre une partie
    Salut,

    tout d'abord mon objectif : arriver a prendre un certains nombre de message suivant le premier message a afficher et ne nombre de messages par page.

    Ensuite mon code actu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    class mess {
      function aff_mess($premierMess, $nbr_messPage) {
        $mess = simplexml_load_file('inc/messages.xml'); 
        foreach($mess->message as $message) {
        ?> <p id="infos_auteur">Par <?php echo utf8_decode($message['name']); ?>, note donnée : <?php echo utf8_decode($message['note']); ?></p>
        <p id="text"><?php echo utf8_decode($message); ?></p> <?php
        }
      }
    }
    ?>
    J'utilise la fonction simplexml, php5 uniquement

    Donc voilà j'espère que vous aurez compris ...

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    tout d'abord mon objectif :
    parfait !!

    Ensuite mon code actu :
    cool, et avec les balises code !!

    Donc voilà j'espère que vous aurez compris ...
    bah pas vraiment la question !!

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 27
    Points
    27
    Par défaut
    Ben non mais j'aimerais arriver a mon objectif
    Donc il faudrais m'aider pour y arriver.

    Si c'est la formulation de mon message qui dérange voici une question : comment prendre un certain nombre de message a partir d'un nombre donné ?

    Ces 2 facteurs sont les 2 paramètres de la fonction

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 201
    Points : 108
    Points
    108
    Par défaut
    Salut,

    Voilà une fonction qui fait ce que tu demandes: (à adapter à tes besoins au niveau des balises, j'ai mis rss et channel vu que tu n'as pas posté ton rss ;)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    function aff_mess($premierMess, $nbr_messPage) {
     
    	$file = 'inc/messages.xml';
     
    	// Balises de départ du flux: à remplacer par celles qui conviennent
    	$str = "<rss>\r\n";
    	$str .= "<channel>\r\n";
     
    	$fp = @fopen($file, "r");
     
    	$count = 0;
     
    	// On parcourt le flux jusqu'au premier élément voulu
    	while ($count < $premierMess) {
    		$current_line = @fgets($fp, 8192);
     
    		if (preg_match("/<message>/", $current_line)) {
    			$count++;
    		}
    	}
     
    	$str .= $current_line;
     
    	$count = 0;
     
    	// On construit le flux à partir du premier élément
    	while ($count < $nbr_messPage) {
    		$current_line = @fgets($fp, 8192);
     
    		$str .= $current_line;
     
    		if (preg_match("/<\/message>/", $current_line)) {
    			$count++;
    		}
    	}
     
    	@fclose($fp);
     
    	$str .= "</channel>\r\n";
    	$str .= "</rss>\r\n";
     
    	$mess = simplexml_load_string($str);
     
    	foreach($mess->message as $message) {
    		?> <p id="infos_auteur">Par <?php echo utf8_decode($message['name']); ?>, note donnée : <?php echo utf8_decode($message['note']); ?></p>
    		<p id="text"><?php echo utf8_decode($message); ?></p> <?php
    	}
    }
    Le mieux c'est quand même que ça soit geré du coté du XML étant donné qu'on est obligés de récupérer tout le début du fichier sans s'en servir :/ mais j'avoue que le plus souvent c'est ainsi malheureusement...

Discussions similaires

  1. Prendre une partie de l'invite
    Par brunelj dans le forum Débuter
    Réponses: 1
    Dernier message: 14/05/2012, 08h49
  2. Prendre une partie d'un champ
    Par ryodo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/09/2010, 21h09
  3. [Débutant] Prendre une partie d'une image en RGB
    Par jp_developpeur dans le forum Images
    Réponses: 3
    Dernier message: 02/07/2009, 12h40
  4. commande DOS pour prendre une partie d'un mot
    Par sofiane1111 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 21/09/2007, 10h59
  5. Prendre une partie du texte
    Par aikinhdo dans le forum Langage
    Réponses: 5
    Dernier message: 24/07/2007, 14h47

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