Heim  >  Artikel  >  Backend-Entwicklung  >  Was sollten Sie beim Lesen von Dateien mit PHP-Fread beachten?

Was sollten Sie beim Lesen von Dateien mit PHP-Fread beachten?

怪我咯
怪我咯Original
2017-07-14 09:49:041982Durchsuche

php fread() Funktion zum Lesen von Dateien (kann sicher für Binärdateien verwendet werden). Dieser Artikel stellt Ihnen Beispiele für das Lesen von Dateien vor und einige Dinge, auf die Sie achten müssen, wenn Sie diese Funktion zum Lesen von Dateien verwenden. Freunde in Not können sich darauf beziehen.

Einführung in die PHP-Fread-Funktion

Syntax

fread(file,length)

Parameter

Datei Erforderlich. Gibt an, dass die Datei zum Lesen geöffnet werden soll.

Länge Erforderlich. Gibt die maximale Anzahl der zu lesenden Bytes an.

Erklärung


fread() liest bis zur Länge Bytes aus der Dateizeigerdatei. Diese Funktion wird aufgerufen, wenn die Länge Bytes erreicht ist oder wenn EOF erreicht ist oder (für Netzwerk-Streams) wenn ein Paket verfügbar ist oder (nach dem Öffnen eines Userspace-Streams) 8192 Bytes gelesen wurden , abhängig davon, welche Bedingung zuerst auftritt.

Gibt die gelesene

Zeichenfolge

zurück oder gibt false zurück, wenn ein Fehler auftritt. fread()-Beispiel:

10 Bytes aus der Datei lesen:

<?php
$file = fopen("test.txt","r");
fread($file,"10");
fclose($file);
?>
Einige Punkte, die bei der Verwendung von fread in PHP zu beachten sind

1. Lösung für den Fehler, wenn Fread große Dateien liest und schreibt

Wenn bei Verwendung von Fread zum Lesen von Dateien der in php.ini festgelegte Wert für die maximale Speichernutzung überschritten wird. Ein Fehler wird aufgefordert. Die folgende Methode löst das Problem beim Lesen großer Dateien:

<? 
  set_time_limit(0);//设置脚本执行时间无限长 
  $flie="flexbuilder_linux_install_a5_112409.bin";//大文件超过php.ini中的内存配置 
  $fp=fopen($flie,"r"); 
  $content=""; 
  $filename="123.bin";//存为新文件 
  $handle=fopen($filename,"a");//写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之 
  while(!feof($fp)){//测试文件指针是否到了文件结束的位置 
    $content=fread($fp,1024); 
    fwrite($handle,$content); 
  } 
  fclose($fp); 
  fclose($handle); 
  echo "数据成功写入文件"; 
?>
2. Wie erkennt php fread() die Dateikodierung? 🎜 >fread gibt die Form von

string zurück. Wie identifiziert es also die in einer.txt-Datei verwendete Codierungsmethode, um sicherzustellen, dass sie nicht verstümmelt ist?

Zeichenkodierung wird in Dateioperationen von Versionen unter PHP 7.0 nicht erkannt.
<?php
$handler=fopen(&#39;a.txt&#39;,&#39;rb&#39;)//二进制方式打开
$content=fread($handler,1024);
echo $content;
?>

Gibt Daten nur in Bytes aus, wenn sie mit der Zeichenkodierung der PHP-Quellcodedatei und dem ausgegebenen HTML übereinstimmen, können sie korrekt angezeigt werden.

3. Wenn fread eine Datei liest, gibt es immer ein zusätzliches Nullzeichen

Wenn wir den obigen Code verwenden, um die Datei zu lesen, manchmal dort wird ein zusätzliches Nullzeichen sein. Dies liegt daran, dass Sie sich auf einer WINDOWS-Plattform befinden und die Datei eine Textdatei ist, die geöffnet und gespeichert wird. Am Ende befindet sich ein spezielles Byte, um das Ende der Datei zu markieren. Wenn Sie sie mit rb öffnen, können Sie dies natürlich tun Lesen Sie das letzte Sonderbyte. Öffnen Sie es mit r und lesen Sie es mit fgets.

Das obige ist der detaillierte Inhalt vonWas sollten Sie beim Lesen von Dateien mit PHP-Fread beachten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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