[PHP] Ne pas lire la 1ère et dernière ligne

HD -  
 HD -
Bonjour
je lis un fichier php avec un code classique :
if (file_exists($fichier))
    {
	$fp = fopen("$fichier", "r"); 
    }
      
    while (!feof($fp))
    { 
       $ligne = fgets($fp,4096); 
       $liste = explode( ";",$ligne);       
       /* On assigne les variables */

Sauf que je ne veux pas lire la première et la dernière ligne de ce fichier.
Merci donc de m'indiquer comment procéder pour celà
merci d'avance pour votre aide !

4 réponses

  1. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    Je ne sais pas du tout si ca marche, mais tu peux essayer d'effacer les premières et dernières lignes du fichier :
    $fichier=preg_replace('#^[^\n]*\n(.*)\n[^\n]*$#sU','$1',$fichier);
    0
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Essaie le code suivant, pour voir :
    if (file_exists($fichier))
    {
        $fp = fopen("$fichier", "r"); 
    }
    $premiereLigne = true;
    while (!feof($fp))
    { 
        $ligne = fgets($fp,4096); 
        if (!$premiereLigne && !feof($fp))  // Si ce n'est pas la 1ere ligne ni la dernière
        {
            $liste = explode( ";",$ligne);
            /* On assigne les variables */
        }
        else  //Sinon, on indique qu'on a franchi la première ligne
            $premiereLigne=false;
    }
    0
    1. HD
       
      salut
      ce code marche bien, merci ! c'est juste qu'il ne récupère pas les lignes dans l'ordre du fichier d'origine :-?
      0
      1. Reivax962 Messages postés 3742 Statut Membre 1 011 > HD
         
        Comment ça, pas dans l'ordre du fichier d'origine ??
        0
  3. lefou4 Messages postés 73 Statut Membre 44
     
    Apparemment chaque ligne de ton fichier texte est stockée dans un tableau. Pourquoi ne pas lire toutes les lignes du fichier texte puis ensuite supprimer les premier et dernier éléments du tableau ?
    0
  4. HD
     
    c'est plutôt un fichier CSV (comme excel niveau forme) et quand je récupère ces lignes ( de 1 à 7 par exemple) j'ai dans l'ordre la ligne 5,4,3,6,2.
    ce qui fait que j ai pas la 1 et la 7 (tant mieux) mais les autres ne sont pas dans l'ordre :-?
    merci a tous
    0