3 votes

PHP - Comment découper un bloc de lignes dans un document texte ?

Comment découper un morceau de texte dans un fichier texte en PHP ? Par exemple, je veux retirer les lignes 0 à 50 et les transformer en une chaîne de caractères. Peut-être même y mettre un peu de formatage html. Je sais déjà quelles lignes je dois couper, mais je ne sais pas comment les sélectionner et les mettre dans une chaîne.

4voto

Oliver A. Points 2008

Utilisez file($filename). Le résultat est un tableau où chaque élément est une ligne de votre fichier. Exemple :

$lines = file("foo.txt");
//extract desired lines
$lines = array_slice($lines,19,21);
$string ) implode("\n",$lines);

1voto

DampeS8N Points 2839

Explose sur une nouvelle ligne et affiche les valeurs du tableau de 0 à 50.

1voto

Milan Babuškov Points 20423

Ouvrez le fichier avec fopen , lire les 50 premières lignes en utilisant fgets .

$fp = fopen('myfile.txt', 'rt');
if ($fp)
{
    for ($i = 0; $i < 50; $i++)
    {
        $s = fgets($fp);
        ...add error checking and do something with the line here
    }
}

C'est efficace même si vous devez lire les 50 premières lignes d'un grand fichier.

0voto

Gordon Points 156415

Approche moins gourmande en mémoire :

$fileObject      = new SplFileObject('yourFile.txt');
$fileIterator    = new LimitIterator($fileObject, 0, 49);
$firstFiftyLines = implode(iterator_to_array($fileIterator));

ou comme alternative

$fileObject      = new SplFileObject('yourFile.txt');
$fileIterator    = new LimitIterator($fileObject, 0, 49);
$firstFiftyLines = '';
foreach ($fileIterator as $currentLine) {
    $firstFiftyLines .= $currentLine;
}

Si vous avez besoin d'autres lignes, modifiez le deuxième et le troisième argument de l'option LimitIterator . Le premier est le décalage de départ, le second le nombre d'itérations (dans ce contexte, les lignes à lire).

Marquer la réponse CW parce que la question (et la réponse) est un double de Lire un fichier de la ligne X à la ligne Y ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X