Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Datei in Array einlesen

PHP-Datei in Array einlesen

WBOY
WBOYOriginal
2016-08-08 09:23:531350Durchsuche

Zur Vereinfachung der Verarbeitung habe ich mit fgets() eine Funktion definiert, die den Dateiinhalt in ein Array einlesen kann. Die i-te Zeile der Datei entspricht dem i-ten Element des Arrays (. Index ist i-1). Das Folgende ist der Quellcode

function file2array($filename){    
    // read a file into an array
    // each element of the array is a line of file
    // also use explode("\r\n", file_get_contents($filename))
    $f = fopen($filename,"r") or die("Unable to open the file '" . $filename . "'!");
    $array=array();
    while(!feof($f)) {
  array_push($array, str_replace("\r\n","",fgets($f)));
}
fclose($f);
return $array;
}

Der Grund, warum ich
str_replace("\r\n","",fgets($f))
verwende, ist, dass fgets auch die Newline-Zeichen einliest. Sie können count() verwenden, um die Länge von zu überprüfen Es wurde festgestellt, dass jede gelesene Zeile zwei Zeichen mehr enthält als die entsprechende Zeile in der Datei. Das äquivalente Verfahren ist

explode("\r\n", file_get_contents($filename))

Verwenden Sie den folgenden Code, um ein Array in einer Datei wiederherzustellen (zu schreiben).

function array2file($array, $filename, $mode="w"){
    // write an array (1-dim) in a file
    $f = fopen($filename, $mode) or die("Unable to open the file '" . $filename . "'!");
    // $f = savefopen($filename, $mode);
    if (! empty($array)) {
        $first=array_shift($array);
        fwrite($f, $first);
        foreach ($array as $line) {
            fwrite($f, "\r\n" . $line);
        }
    }
    fclose($f);
}

Ich habe auch einige einfache und nützliche Dateioperationsfunktionen geschrieben, die jeder nutzen kann.

function file2str($filename){    
    // read a file into a string
    $f = fopen($filename,"r");
    $str="";
    while(!feof($f)) {
  $str .= fgets($f);
}
fclose($f);
return $str;
}


function fpush($filename, $arr){
    $f=fopen($filename, "a");
    foreach ($arr as $str) {
        fwrite($f, NL . $str);   // NL == "\r\n"
    }
    fclose($f);
}


function fnl($filename){
    // add a new line "\r\n" in the file
    $f=fopen($filename, "a");
    fwrite($f, NL);  
    fclose($f);
}


function fclear($filename){
    // clear a file
    file_put_contents($filename, "");
}


function fempty($filename){
    // is the file empty or not?
    $f = fopen($filename,"r");
    fgetc($f);
    if (feof($f)) {
        return True;}
    else {
        return False;}
    fclose($f);
}

Das Obige stellt vor, wie man PHP-Dateien in Arrays einliest, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn