Tools, FAQ, Tutorials:
Issue with "while ($c=fgetc($f))" Loop in PHP
What's Wrong with "while ($c=fgetc($f)) {}" in PHP?
✍: FYIcenter.com
If you are using "while ($c=fgetc($f)) {}" to loop through each character in a file, the loop may end in the middle of the file when there is a "0" character, because PHP treats "0" as Boolean false. To properly loop to the end of the file, you should use "while ( ($c=fgetc($f)) !== false ) {}". Here is a PHP script example on incorrect testing of fgetc():
<?php $file = fopen("/temp/cgi.log", "w"); fwrite($file,"Remote host: 64.233.179.104.\r\n"); fwrite($file,"Query string: cate=102&order=down&lang=en.\r\n"); fclose($file); $file = fopen("/temp/cgi.log", "r"); while ( ($char=fgetc($file)) ) { print($char); } fclose($file); ?>
This script will print:
Remote host: 64.233.179.1
As you can see the loop indeed stopped at character "0".
2016-11-27, 1568👍, 0💬
Popular Posts:
Where is API Management Service on my Azure Portal? If your IT department has signed up for an Azure...
Where to find tutorials on how to work with MySQL Database in PHP? A collection of tutorials to answ...
What Is an HTML http-equiv "meta" Tag/Element? a http-equiv "meta" element is a special "meta" eleme...
How to create a new API on the Publisher Dashboard of an Azure API Management Service? If you are ne...
How to Test API as a Publisher Administrator? You can follow this tutorial to test an API operation ...