2016-05-18 7 views
3

überspringen Kann mir bitte jemand sagen, wie ich die erste und die letzte Zeile eine Datei überspringen kann. Ich schrieb zwei Funktionen, die die erste und die letzte Zeile einer Datei zurückgeben, aber ich brauche eine die Zeilen zwischen dem Header und dem Schwanz!Wie kann ich die erste und die letzte Zeile einer Datei in PHP

function get_file_header($file) { 
    return fgets($file); 
} 


function get_file_tail($file){ 
    while (($line = fgets($file))){ 
    $fin = $line; 
    } 
    return $fin; 
} 
+1

Willkommen auf Stack-Überlauf. Bitte definieren Sie in diesem Kontext * escape *. Willst du einer Schnur entkommen? Escape HTML-Tags? –

+1

"Ich schrieb zwei Funktionen" - zeige, was geschrieben wurde – RomanPerekhrest

+1

Bearbeite deine Frage anstatt einen Kommentar hinzuzufügen bitte – Alexis

Antwort

2

Sie könnten die Zeilen in einem Array lesen Sie zuerst mit file und führen Sie dann die Entfernung mit array_slice:

function get_file_tail($filepath){ 
    // Read file as lines into an array 
    $lines = file($filepath); 
    // Remove first and last line 
    $lines = array_slice($lines, 1, count($lines)-2); 
    // Convert to string (if array is not useful for you) and return it 
    return implode(PHP_EOL, $lines); 
} 

Beispielaufruf:

echo get_file_tail("http://websitetips.com/articles/copy/lorem/ipsum.txt"); 
+0

Die Funktion heißt 'get_file_tail', warum wird die erste und letzte Zeile entfernt? Es sieht so aus, als wäre es nicht logisch. –

+1

Der Funktionsname ist in der Tat seltsam, aber es ist der vom Fragesteller gewählte Name, und seine Frage war * "wie kann ich die erste und die letzte Zeile einer Datei überspringen" *. – trincot

0

Nun, ich habe mein Problem gelöst tun dies:

Funktion get_file_detail s ($ file) {

$details = array(); 

if ($file) { 

    while (($line = fgets($file)) !== false) { 
     array_push($details, $line); 
    } 

    fclose($file); 
} 

$info_file = array("header" => $details[0], "details" => remove_first_last($details) , "end" => end($details)); 

return $info_file; 

}

Funktion remove_first_last ($ array) {

array_shift($array); 

array_pop($array); 

return $array; 

}

Verwandte Themen