|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2001-08-19 03:45 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 13:00:01 2025 UTC |
while reading chunks using fgets from a pdf-File, it occured that fgets seems to read data until a 0x0a occurs but returned the data until the first occurence of 0x00 only. Because of that, half of the data was lost. example Hello0x0d0x0a XYZ will be read an returned correctly, the data containing "Hello" and the filepointer on the XYZ He0x00llo0x0d0x0a XYZ will retrurn data containing "He" with the filepointer still on the XYZ my code: $fp=fopen($pdf_file,"r"); while (!feof($fp)) { $pdf_line="|".strtoupper(fgets($fp,4096)); $filepos+=strlen($pdf_line)-1; $i=0; while ($i=strpos($pdf_line,"Needle",$i)) { if ($i<4000) { $i+=strlen("Needle"); $retval[]=substr($pdf_line,$i,strlen("Needle")); } else { $i++; } } if (strlen($pdf_line)>4000) { fseek($fp,$filepos-100); $filepos-=100; } } fclose($fp); we solved the problem by using fread() instead of fgets(), but felt you still might be interested.