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 :

effacer une ligne selon sont Timestamp


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut effacer une ligne selon sont Timestamp
    Bonjour, j’ai txt fichier tx contenant des lignes dans ce format.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [' src = " <iframe width = " 500 " height = " 300 " src = " https://embed./broadcast/6097935 " frameborder = " 0 " allowfullscreen></iframe > " ',47.3589,1.75728,1455352984 ],
    [' src = " <iframe width = " 500 " height = " 300 " src = " https://embed.com/broadcast/6098032 " frameborder = " 0 " allowfullscreen></iframe > " ',47.3842,1.75306,1455357996 ],
    [' src = " <iframe width = " 500 " height = " 300 " src = " https://embed.com/broadcast/6098045 " frameborder = " 0 " allowfullscreen></iframe > " ',47.3722,1.73907,1455358169 ],
    Je voudrais effacer les lignes qui correspondent a une heure précise en récupérant le Timestamp à la fin. je sais récupérer ce TS en le comparant a une heure comme ceci

    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
     
     
    <?php
     
     
    $fp = fopen("archives.txt", "r");
    $coord=fread($fp,2000);fclose($fp);
    $tab = split(",",$coord);
     
     
    // On identifie les valeurs intéressantes
     
       $stamp= $tab[3];
     
    $stamp = substr("$stamp", 0.10); // ici le timestamp
    $time=time();
    $diff = ($time- $stamp)/60/60;
    $hours = "1";
    if ($hours > $diff)
     
    // effacer la ligne 
     
    ?>
    Je sais effacer les lignes de mon fichier comme ceci( voir ci-dessous) mais c'est sur cette condition d'heure et de Timestamps qui bloque, Merci de votre aide/

    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
     
     
    <?php
     
       $ptr = fopen("archives.txt", "r");
       $contenu = fread($ptr, filesize("archives.txt"));
     
       /* On a plus besoin du pointeur */
       fclose($ptr);
     
      $contenu = explode(PHP_EOL, $contenu);
    /* PHP_EOL contient le saut à la ligne utilisé sur le serveur (\n linux, \r\n windows ou \r Macintosh */
     
     
    for($i = 1; $i < 2; $i++) {
        unset($contenu[$i]);
    }
    $contenu = array_values($contenu); /* Ré-indexe l'array */
     
     
       /* Puis on reconstruit le tout et on l'écrit */
       $contenu = implode(PHP_EOL, $contenu);
       $ptr = fopen("archives.txt", "w");
       fwrite($ptr, $contenu);
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Etant donné que tu as déjà le code pour la lecture, la condition et l'effacement ... je ne vois pas ce que tu attends de nous.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    bonsoir,

    Ce que je n'arrive pas a comprendre c'est comment lier tout ça.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Plus simplement que de lire tout le fichier d'un coup avec fread, tu peux le lire ligne par ligne et donc pour chaque ligne, avoir la condition pour la garder ou non.
    Et à la fin réecrire le tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if (($handle = fopen("archives.txt", "r")) !== FALSE) {
        $content = '';
        while (($line = fgets($handle)) !== FALSE) {
            $data = explode(',', $line);
            $timestamp = substr($data[3], 0 ,10);
            if ((time() - $timestamp) < 3600) {
                 $content .= $line;
            }  
        }
        fclose($handle);
    }
    file_put_contents('archives.txt', $content);
    ?>
    Attention j'ai supposé que tu voulais supprimer toutes les lignes de plus d'une heure ; si c'est l'inverse, retourne la condition. fais une sauvegarde avant d'essayer
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    c’est parfait, en plus en quelques lignes, effectivement c'est bien plus simple de lire ligne par ligne, c'est là que je mesure le chemin que j’ai encore à parcourir , merci sabotage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FSO] Effacer une ligne dans un fichier
    Par Johnbob dans le forum ASP
    Réponses: 4
    Dernier message: 30/05/2007, 16h23
  2. Ne pas afficher une ligne selon une valeur
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 14h04
  3. Table paradox : Effacer une ligne entière
    Par James64 dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/10/2005, 14h11
  4. [langage] Effacer une ligne dans un fichier
    Par sebi77 dans le forum Langage
    Réponses: 2
    Dernier message: 01/01/2005, 12h43
  5. Effacer une ligne dans la table nat
    Par vbcasimir dans le forum Sécurité
    Réponses: 2
    Dernier message: 11/01/2004, 00h15

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