[RESOLU] copi les x premiere et les x derniere ligne d'un fichier txt

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] copi les x premiere et les x derniere ligne d'un fichier txt

Re: copi les x premiere et les x derniere ligne d'un fichier

par oziris » 22 janv. 2015, 11:32

ok merci je vais tester ca

Re: copi les x premiere et les x derniere ligne d'un fichier

par xTG » 21 janv. 2015, 12:30

dsl je comprend plus rien là.
j'ai remplacer mon $_post['texte'] de la ligne file_put_contents par $output et j'ai montagne d'erreur
j'ai beau faire tous les essai que je peu mais rien a faire
As-tu pensé à inverser l'ordre des lignes de ton code ?
Parce que sinon c'est comme voir son fils naître avant nous. => utiliser une variable qui n'existe pas encore.

Re: copi les x premiere et les x derniere ligne d'un fichier

par oziris » 20 janv. 2015, 19:35

dsl je comprend plus rien là.
j'ai remplacer mon $_post['texte'] de la ligne file_put_contents par $output et j'ai montagne d'erreur
j'ai beau faire tous les essai que je peu mais rien a faire

Re: copi les x premiere et les x derniere ligne d'un fichier

par @rthur » 20 janv. 2015, 17:47

Pour récupérer le contenu du fichier dans un tableau, autant utiliser la fonction php file() à la place de file_get_content() + explode().

http://php.net/manual/fr/function.file.php
Exact, bien vu !

Re: copi les x premiere et les x derniere ligne d'un fichier

par ynx » 20 janv. 2015, 15:08

Salut,

Pour récupérer le contenu du fichier dans un tableau, autant utiliser la fonction php file() à la place de file_get_content() + explode().

http://php.net/manual/fr/function.file.php

Bonne journée

Re: copi les x premiere et les x derniere ligne d'un fichier

par xTG » 20 janv. 2015, 14:23

La seule chose qui est enregistrée dans ton fichier c'est $_POST['texte'] qui n'est jamais modifiée.
Le explode et le array_slice sont mal utilisés et n'ont donc aucune incidence sur l'enregistrement ou l'affichage.

Si tu souhaites enregistrer le retour de arra_slice c'est donc $output qu'il faut mettre dans file_put_contents.

Re: copi les x premiere et les x derniere ligne d'un fichier

par oziris » 20 janv. 2015, 13:02

ok merci pour la marche a suivre j'ai un peu de mal a tous comprendre mais je cherche,
j'en suis là :
<tr>
<td align="center" colspan="2">

<?php
file_put_contents( 'data.txt', $_POST['texte']);
$lignes = explode("\r\n", $_post['texte']);
$input = array($_post['texte']);
$output = array_slice($input, 1, 10);
?>

<form action="#" method="post">
 coller les texte complet ici :<br />
 <textarea name="texte"><?php echo file_get_contents( 'data.txt' ); ?></textarea><br/>
 
 <input type="submit" value="convertir"> 
 
</form>
<p>
actuellement cela ne me copie tous le texte dans data.txt
par contre lorsque je veux regarder le contenue avec ma 2 eme page (pour le moment elle me sert a vérifier l'existence et l'affichage afin de pouvoir copier juste les lignes utile par la suite)
voir code 2eme page ci dessous :
<tr>
<td align="center" colspan="2">

    <?php
    // Instruction 1 ouverture du fichier en lecture seule
    $fp = fopen ("data.txt", "r+");
    // Instruction 2 on place le contenu de ce fichier dans la variable $contenu_du_fichier avec 255 caractere lu
    $contenu_du_fichier = fgets ($fp, 50000);
    // Instruction 3 on referme le fichier data.txt
    fclose ($fp);
    // Instruction 4 on affiche donc le contenu dela variable $contenu_du_fichier
    echo 'Notre fichier contient : '.$contenu_du_fichier;
    ?>
<p>&nbsp;<p>
je n'est que la première ligne du texte qui s'affiche je ne sais pas si cela viens du explode ma variable $lignes ou le array_slice ou de ma 2eme page
encore un petit coup de main serai le bienvenue
merci d'avance

Re: copi les x premiere et les x derniere ligne d'un fichier

par @rthur » 20 janv. 2015, 11:51

Bonjour oziris,

Voila ce que je ferrai :
1/ D'abord récupérer le contenu de ton fichier avec file_get_contents()
2/ Puis tu mets dans un tableau chaque ligne en faisant un explode() sur le caractère \r\n qui représente un saut de ligne sous Windows (juste \n si le fichier texte a été créé sous linux)
3/ Ensuite tu utilises array_slice() pour récupérer les 10 premières lignes et les 10 dernières.
4/ Puis tu remets le résultat sous forme de texte avec implode() sur le caractère \r\n (c'est l'opération inverse de l'étape 2)
5/ Et enfin, tu enregistres le tout dans un fichier avec file_put_contents() (c'est l'opération inverse de l'étape 1)

copi les x premiere et les x derniere ligne d'un fichier txt

par oziris » 20 janv. 2015, 11:31

bonjour a tous,
voila je souhaiterai trouver le moyen de copier les 10 première ligne et les 10 dernière ligne d'un texte (qui fait a peu prés 120 ligne en tout) que j'ai déjà converti en fichier "data.txt"
et les transférer dans un autre fichier "dest.txt"
afin de pouvoir les remettre en forme par la suite
j'ai chercher un peu partout sur le net et ne trouve pas le moyen de faire cela,
si quelqu'un peu m'aider SVP
je le remercie par avance