Christian Seiler: fgets Problem wenn Datei 0 enthält

Beitrag lesen

Hallo Tom,

Es werden nicht soviele Nutz-Zeichen gelesen, wie Du in Auftrag gibst, sondern ein oder zwei weniger.

Konnte ich bisher nicht nachvollziehen. Beispielcode?

fread() darf z.B. nicht mehr auf 0 Bytes ausgeführt werden.

Konnte ich bisher nicht nachvollziehen. Beispielcode?

Mal ein Beispiel, dass fread() und fgets() korrekt funktioniert:

<?php  
  
$fp = fopen ('0datei', 'r');  
$data = fread ($fp, 5);  
echo urlencode($data)."\n";  
  
$fp = fopen ('0datei', 'r');  
$data = fread ($fp, 10);  
echo urlencode($data)."\n";  
  
$fp = fopen ('0datei', 'r');  
$data = fgets ($fp, 6);  
echo urlencode($data)."\n";  
  
$fp = fopen ('0datei', 'r');  
$data = fgets ($fp, 10);  
echo urlencode($data)."\n";  
?>  

hexdump -C 0datei
00000000  74 65 73 74 00 0a 6e 6f  63 68 65 69 6e 74 65 73  |test..nocheintes|
00000010  74 0a                                             |t.|

test%00
test%00%0Anoch
test%00
test%00%0A

Funktioniert alles wie erwartet.

Viele Grüße,
Christian