Go Premium for a chance to win a PS4. Enter to Win

x
Solved

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

Posted on 2011-09-28
Medium Priority
334 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

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 Build an array called$myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
This article discusses four methods for overlaying images in a container on a web page
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to count occurrences of each item in an array.
###### Suggested Courses
Course of the Month13 days, 1 hour left to enroll