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 :

Récuperer une valeur dans un fichier texte


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Récuperer une valeur dans un fichier texte
    Bonsoir
    vu que mes compétence PHP sont largement inférieures à ma demande, je me permet de faire appel aux cerveaux présent ici

    Soit un fichier nommé docid.dtb, fichier texte avec cette structure
    type||id||status

    * type correspond au type du document
    * id correspond au numéro d'identification du document
    * status correspond au status(activé/désactivé/supprimé) du document.

    status peut prendre les valeurs
    activé ---> a
    désactivé ---> i
    supprimé ---> d

    type peut prendre les valeurs
    article ---> ar
    news ----> ne
    faq ---> fa
    liens ---> li
    newsletter ---> nl

    Id étant le N° de page que je veux appeller.

    Comment pourrais je en php récuperer de manière aléatoire un id pour afficher une page, sachant que le lien final doit ressembler à

    http://www.sucrepop.com/articles.php?lng=fr&pg=819

    le but donc, piocher aléatoirement dans le fichier docid.dtb un ID actif permettant d'afficher un article, news ou autre au hasard (qu'est ce que je ce que ne ferais pas pour faire découvrir ma musique ;o)

    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    ....A froid comme ca d'un coup sans trop me chopper une crampe au cerveau, je dirai :

    Un tableau associatif du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tab['id']['type']['statut'];
    //Je suppose qu'un article quelqu'il soit est composé comme ca.....
    //Donc une ligne du tableau correspond à un article précis
    Sur ce tableau, on rajoute une colonne qui qui permet d'avoir un numéro entre 0 et x, x étant le nombre totale d'article, donc :

    Je reprend mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //structure du tableau associatif :
    $tab[]['id']['type']['statut'];
     
    //Je suppose que le tout est issue d'une BDD, donc :
    while($row=$res->fetch_assoc()){
    $tab[][$row['id']][$row['type']]=$row['statut'];
    }
    Ensuite, on va utiliser la fonction rand, qui permet de sortir un chiffre au hasard :

    Donc je continue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tabkey=array_keys($tab);
    $lastkey=max($tabkey);
     
    $chiffre=rand(0,$lastkey);
    //$chiffre est un nombre pris au hasard entre 0, début du tableau, et $lastkey, fin du tableau....
    Et voilà.... Bon faut bidouiller le tableau, mais le le concept est là... Et sans freeze su cerveau !!!! Tu auras compris que la fonction principale est rand, donc après tu peux trouver d'autres méthodes...

    Notamment, pour la BDD essaye déjà de sélectionner les articles activé (ca enlève un paramètre du tableau : statut)....

    Bonne chance !!!
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci pour la réponse

    En fait, il n'y a pas une ligne par article, c'est le double || qui permet de faire la séparation.
    Et non, ce n'est pas extrait d'une bdd.Chaque création d'article incrémente d'un l'ID dans le fichier texte.

    Du coup, je ne pense pas pouvoir ajouter une numérotation à ce tableau pour ensuite piocher dans cette numérotation, je ne peux pas toucher àla structure du fichier texte

  4. #4
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    ...Si, tu peux si tu considère un article par ligne ?

    Meme si c'est à la suite, il y a possiblité pour chopper ce que tu veux avec un expression rationnel, et de compter les occurences....
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    en fait le fichier texte a cette tête
    type||id01||status||type||id02||status||type||id03||status||type||id04||status||
    type||id05||status|| type||id06||status|| type||id07||status|| type||id08||status||

    sur la même ligne j'ai plusieurs articles.

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Si tu es sur d'avoir toujours cette structure "type, id, status" alors tu peux utiliser la fonctions explode() pour récupérer tes valeurs dans un tableau puis faire un rand sur le nombre de case du tableau afin de tomber sur id aléatoire.

    Si tu veux aller plus loin, tu peux faire un modulo 3 (puisque tu as 3 types de données dans ta structure) afin de répartir les valeurs de ce tableau dans 3 tableaux différents et tu te retrouveras avec un tableau contenant les "types", un contenant les "id" et un derniers contenant les "statuts".
    Tu n'as plus, alors qu'à faire ton random sur le tableau des id.

  7. #7
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    ...c'est vrai j'avais pas pensé au Explode()

    Bof, tu te rend compte qe tu as 2 Nimois pour te répondre ? Heureusment que la Féria est loin, car sinon tu aurais pu douter de nos compétence
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

Discussions similaires

  1. récuperer une valeur dans un champ text dans un rdlc
    Par Msysteme dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/04/2015, 12h01
  2. extraction d'une valeur dans un fichier texte
    Par mfontan dans le forum MATLAB
    Réponses: 4
    Dernier message: 16/10/2011, 23h40
  3. Comment chercher une valeur dans un fichier text?
    Par lili81 dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/06/2008, 16h18
  4. Réponses: 0
    Dernier message: 25/02/2008, 14h23
  5. Réponses: 2
    Dernier message: 08/06/2006, 13h48

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