Déplace le pointeur de lignes

Déplace le pointeur de fichier jusqu'à la ligne voulue.
Le fichier doit être ouvert avec fopen().
Si le numéro de ligne est négatif, on commence à compter depuis la fin du fichier (-1 = avant dernière ligne).


Information sur les mises à jour

Dernière mise à jour :

18 Sept 2019
fonctionnement du code vérifié

3 383  vues
Compatibilité du code
PHP 5, PHP 7 et PHP 8
  code classé dans   Fichiers-répertoires
  code source classé dans   Fichiers-répertoires
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
                    
<?php
/*------------------------------*/
/*
Titre : Déplace le pointeur de lignes

Date édition : 16 Fev 2019
Date mise a jour : 18 Sept 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/

function fseeks($fp , $nb){
// si $nb est négatif, on compte les lignes depuis la fin
if (!is_integer($nb)){
// $nb est un entier!
return FALSE;
}

// tout cela ne fonctionne qu'avec un fichier ouvert
if(!is_resource($fp)){
return FALSE;
}
// pas une socket ou un processus
if (get_resource_type($fp) != 'file'){
return FALSE;
}

if(!rewind($fp)){
return FALSE;
}

if ($nb == 0){
return TRUE;
}

if ($nb < 0){
$total = fcount($fp);
while( $nb < 0) {
$nb += $total;
}
}

// Un très grand nombre pour être sur de lire toute une ligne
for($i=0; $i< $nb - 1, !feof($fp), fgets($fp, 1024*1024*10); $i++){
// rien a faire du tout
}
return ($i == $nb - 1);
}
?>
<?php
/*------------------------------*/
/*
Titre : Déplace le pointeur de lignes

Date édition : 16 Fev 2019
Date mise a jour : 18 Sept 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/

function fseeks($fp , $nb){
// si $nb est négatif, on compte les lignes depuis la fin
if (!is_integer($nb)){
// $nb est un entier!
return FALSE;
}

// tout cela ne fonctionne qu'avec un fichier ouvert
if(!is_resource($fp)){
return FALSE;
}
// pas une socket ou un processus
if (get_resource_type($fp) != 'file'){
return FALSE;
}

if(!rewind($fp)){
return FALSE;
}

if ($nb == 0){
return TRUE;
}

if ($nb < 0){
$total = fcount($fp);
while( $nb < 0) {
$nb += $total;
}
}

// Un très grand nombre pour être sur de lire toute une ligne
for($i=0; $i< $nb - 1, !feof($fp), fgets($fp, 1024*1024*10); $i++){
// rien a faire du tout
}
return ($i == $nb - 1);
}
?>

Exemple :

 
01
02
03
04
                    
<?php
// déplace le pointeur à  la ligne 10
fseeks("VotreFichier.txt", 10);
?>
<?php
// déplace le pointeur à  la ligne 10
fseeks("VotreFichier.txt", 10);
?>

      Fonctions du code - Doc officielle PHP

   php.net  
Description
Versions PHP
    feof
Teste la fin du fichier
PHP 4, 5, 7 et 8
    fgets
Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier
PHP 4, 5, 7 et 8
    get_resource_type
Retourne le type de ressource
PHP 4, 5, 7 et 8
    is_integer
Alias de is_int
PHP 4, 5, 7 et 8
    is_resource
Détermine si une variable est une ressource
PHP 4, 5, 7 et 8
    return
Retourne le controle du programme au module appelant
PHP 4, 5, 7 et 8
    rewind
Replace le pointeur de fichier au début
PHP 4, 5, 7 et 8
Minimum 10 mots. Votre commentaire sera visible après validation.


 Autres snippets qui pourraient vous intéresser

Ajouter des lignes au début de vos fichiers textes

Compatibilité : PHP 5, PHP 7, PHP 8

Ce snippet permet d'ajouter du texte au début de votre texte existant. Il additionne votre nouveau contenu à l'ancien.

Supprime les lignes vides d'un texte

Compatibilité : PHP 5, PHP 7, PHP 8

Retire les lignes vides d'un texte, d'une chaine avec une expressions régulière et la fonction : preg_replace ().

* Requêtes exécutées avec Recherche Contextuelle

  16 Fév 2019

Information sur les mises à jour

Dernière mise à jour :

18 Sept 2019
fonctionnement du code vérifié

3 383 Vues
Compatibilité du code
PHP 5, PHP 7, PHP 8
53 codes

Catégorie :  Fichiers-répertoires

Affiche la taille d'un fichier en Ko, Mo, Go, To, Po, Eo, Zo
Affiche une citation au hasard
Affiche une ligne d'un fichier de manière aléatoire
Afficher le code source d'un fichier PHP
Ajoute des lignes au début de vos fichiers textes
Calcul et affiche le nombre de ligne de plusieurs fichiers
Calcul la taille d'un dossier en Octet
Calcul la taille de répertoires et sous répertoires
Change le chmod d'un fichier par FTP
Compresse et décompresse un fichier
Compte le nombre de fichiers d'un répertoire
Compte le nombre de ligne
Copie du contenu d'un dossier en conservant l'arborescence
Copie récursive de dossiers
Copier des fichiers d'1 serveur à1 autre serveur
Création massive de fichiers zip à partir d'une table SQL
Créer un nouveau fichier
Créer un nouveau répertoire
Créer une arborescence récursivement
Découpe des fichiers volumineux
Découpe le path d'1 fichier
Déplace le pointeur de lignes
Déplace un dossier avec sous répertoires
Déplace un fichier dans un autre répertoire
Efface un répertoire et ses sous répertoires
Extrait les adresses emails d'un fichier texte
Indique si 1 répertoire existe sinon il le créer
Interprète du code PHP dans un fichier HTML
Limite la vitesse de download d'un fichier zip
Lire le contenu d'un fichier avec fopen
Lire le contenu d'un fichier ligne par ligne
Liste des répertoires et sous-répertoires
Liste un répertoire
Liste un répertoire par date
Liste un répertoire par ordre alphabétique
Liste un répertoire selon une extension
Mise en cache d'un site
Modifications dans plusieurs fichiers
Modifie massivement le contenu de fichiers texte
Obtenir l'extension d'un fichier
Obtenir l'extention d'un fichier d'une url
Réécrire un fichier en partant de la fin
Régule la vitesse de téléchargement d'un fichier local
Recherche une chaine de caractère dans un fichier
Remplace les balises BR par des \n
Renommer l'extension de fichiers
Supprime des fichiers selon une date
Supprime l'extension d'un fichier
Téléchargement de fichiers zip avec compteur
Upload basique + Formulaire
Upload Multi classe + Formulaire
Upload Multi tout type de fichiers + formulaire
Vide un répertoire de tous ses fichiers