Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# How to correctly terminate a text file line so read into PHP?

Posted on 2011-09-28
Medium Priority
333 Views
Hi,

I'm attempting to read a text file using a PHP script and write the data to a MySQL DB.  I'm using PHP version 5.1.4.

I can't get past reading the file.  The code and error messages are shown below.  The image is the text file converted to Hexadecimal.

Note, the end of line characters in hex are: 0D 0A.  Is this correct?  I'm using Ultra Edit to create the test file.  Could my editor be the problem?

How do I fix this?

Thanks!

<?php
$myfile = "C:\\tmp\\text.txt";$fh = fopen($myfile, 'r') or die("Can't open file"); while (!feof($myfile)) {
$line = fgets($file);
echo ($line)."<br>"; } fclose($file);
?>

?>

Warning: feof(): supplied argument is not a valid stream resource in E:\Program Files\nusphere\phped\Projects\ParsMetData&InsertIntoDB.php on line 5

Warning: fgets(): supplied argument is not a valid stream resource in E:\Program Files\nusphere\phped\Projects\ParsMetData&InsertIntoDB.php on line 6
php1.jpg
0
Question by:IT79637
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points

LVL 6

Accepted Solution

neorush earned 1200 total points
ID: 36719408
Actually your file is fine, the code is incorrect.  You need to use the file handler resource $fh with the file handler functions (feof, fgets, fclose) <?php$myfile = "C:\\tmp\\text.txt";
$fh = fopen($myfile, 'r') or die("Can't open file");
while (!feof($fh)) {$line = fgets($fh); echo ($line)."<br>";
}
fclose(\$fh);
?>
0

LVL 111

Expert Comment

ID: 36719850
See http://php.net/manual/en/function.file.php

If you try file() and find blank lines between every valuable line of data, you might want to trim() each line as you read it, then add back the PHP end-of-line character which is always found in the constant PHP_EOL.  It is context-aware.

In case you are reading information from a comma-separated type of file, you might find this function useful.
http://us.php.net/manual/en/function.fgetcsv.php

Best regards, ~Ray
0

LVL 1

Author Closing Comment

ID: 36720113
Thanks!
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
There are times when I have encountered the need to decompress a response from a PHP request. This is how it's done, but you must have control of the request and you can set the Accept-Encoding header.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
###### Suggested Courses
Course of the Month8 days, 6 hours left to enroll