PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 21-01-2015 09:25:05

oziris
Membre
Inscription : 26-06-2013
Messages : 8

copier les x premiere et les x derniere lignes d'un fichier .txt

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,

pour le transfert du texte en un fichier "data.txt"

j'utilise ce code page 1:


<tr>
<td align="center" colspan="2">

<?php
// copie des données récupérer dans le file_get_content en fichier txt
file_put_contents( 'data.txt', $_POST['texte']);
?>
//utilisation d'un textarea pour envoyer le texte brut dans un fichier txt
<form action="#" method="post">
 coller votre text ici :<br />
// a l'aide du textarea et du file_get_content je récupère le texte
 <textarea name="texte"><?php echo file_get_contents( 'data.txt' ); ?></textarea><br/>
 
 <input type="submit" value="convertir">
 
</form>
<p>

pour afficher sont contenu en numérotant les ligne et en y ajoutant des retour a la lignes (cette page va me servir a définir les ligne a copier exactement étant donne que je pèche sur la façon de copier les lignes je n'est pas vraiment encore regarder si se sont les 10 ou 8 première lignes et les 10 ou 8 dernière lignes du texte que je vais copier de plus je n'arrive pas a supprimer les saut de lignes )

code de la page 2 affichage du contenu :


<tr>
<td align="center" colspan="2">
<?php
// Lit une page web dans un tableau.
$lines = file('data.txt');

// Affiche toutes les lignes du tableau comme code HTML, avec les numéros de ligne
foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";

}
// bout de code que je ne sais pas ou mettre exactement pour supprimer les saut de ligne n'y comment utiliser
//$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

?>

page 3 copie des 10 lignes du début et des 10 lignes fin du fichier "data.txt" et envoi vers un autre fichier txt "dest.txt" (c'est la que je galérè je ne sais pas quoi ou comment faire on m'a conseiller d'utiliser un array_slice mais je ne comprend pas comment ca fonctionne


<tr>
<td align="center" colspan="2">

<?php

// ecrire les lignes copier dans un fichier dest.txt
    file_put_contents( 'dest.txt', $donnees);
// Instruction d'ouverture du fichier en lecture seule
    $fp = fopen ("data.txt", "r");
    $donnees = fgets($fp, array_slice(-8,10));
// Instruction on referme le fichier data.txt
    fclose ($fp);
// Instruction on affiche donc le contenu de la variable $donnees
    echo 'Notre fichier contient : '.$donnees;

?>
 

je suis débutant et j'ai l'habitude a force de test d'arriver a mon but mais là c'est un peu plus compliquer j'ai beau lire les aides diverse sur le net je bloque sur certaine chose
cela manque de détail pour que je comprenne vraiment l’utilité et le fonctionnement des code dont j'ai besoin pour faire ceux que je souhaite
si quelqu'un peu m'aider SVP
je le remercie par avance

Hors ligne

#2 21-01-2015 14:42:19

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : copier les x premiere et les x derniere lignes d'un fichier .txt

code non testé et débugé :

$tab = file("nomdufichier");
$content = "";
for($i=0; $i<10; $i++){
$content .= $tab[$i]."\r\n";
}
for($i=sizeof($tab)-10; $i<sizeof($tab); $i++){
$content .= $tab[$i]."\r\n";
}
echo $content;

Hors ligne

#3 21-01-2015 16:03:35

oziris
Membre
Inscription : 26-06-2013
Messages : 8

Re : copier les x premiere et les x derniere lignes d'un fichier .txt

merci a toi tof73 !
cela copie bien les 10 première et 10 dernière ligne de mon fichier *.txt
je vois que tu a fait une boucle de recherche et mis un "\r\n" pour faire un retour a la ligne mais le retour a la ligne ne fonctionne pas,
j'ai essayé de les mettre (entre parenthèse) remplacer les " par des ' et rien a faire

vois tu d’où cela peu venir ??

j'ai rajouté le code suivant a la fin de ton bout de code pour mettre les lignes copier dans un fichier .txt nommer dest.txt et cela fonctionne


// ecrire les lignes copier dans un fichier dest.txt
    file_put_contents( 'dest.txt', $content);
 

en tout cas merci pour ton aide je n'avais pas pense au boucle mais là encore je n'aurai pas pu y arriver seul

Hors ligne

#4 30-06-2018 13:12:26

Otomatic
Membre
Inscription : 30-06-2018
Messages : 1

Re : copier les x premiere et les x derniere lignes d'un fichier .txt

Bonjour,

Je sais que cette discussion date de plus de trois ans, néanmoins, ayant été confronté à ce problème, je pense avoir trouvé une solution “simple”.
Récupérer les dix premières lignes d'un fichier texte :

$resultat = implode(PHP_EOL, array_slice(file(chemin complet du fichier), 0, 10));

Récupérer les dix dernières lignes d'un fichier texte :

$resultat = implode(PHP_EOL, array_slice(file(chemin complet du fichier), -10));

Hors ligne

Pied de page des forums