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.
Réponses
Trop de publicités?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.
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 ?