|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-05-15 02:21 UTC] mitra at mitra dot biz
I'm often running into problems with users, moving files around from a Macintosh to Linux, it would be useful if PHP allowed modification of auto_detect_line_endings in the php3, rather than just in php.ini. In this way, files which handle user supplied files, can do the auto-detection, while those reading files of known origin can leave it as it is. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2026 The PHP GroupAll rights reserved. |
Last updated: Sat Aug 15 09:00:02 2026 UTC |
This option *IS* settable within your PHP scripts. Example: <?php ini_set('auto_detect_line_endings', true); $contents = file('unknowntype.txt'); ini_set('auto_detect_line_endings', false); $content2 = file('unixfile.txt'); ?> Note, with PHP 4.3 anytime Mac files are read using fgets or file you'll need to auto_detect_line_endings since \n is otherwise assumed. However, with PHP 5.0, stream_get_line() will allow you to specify what line ending character to read up to. \\ Read a line from a MAC file stream_get_line($fp, 4096, "\r"); \\ Read a line from a UNIX file stream_get_line($fp, 4096, "\n"); \\ Read a line from a DOS file stream_get_line($fp, 4096, "\r\n"); \\ Read a line up to any filesystem line ending ini_set('auto_detect_line_endings', true); fgets($fp); \\ You can also make up your own line ending characters: \\ Read up to the first instance of ":" stream_get_line($fp, 4096, ":");It is worth noting that: ini_set('auto_detect_line_endings', true); is only inspected and used by the stream when it reads the *first* line (via fgets). Subsequent reads use the value it detect then. This is only an issue if (for some strange reason!) you have a mixture of different line ending conventions in a file. In other words, the ini setting is only inspected at the time the stream is opened via fopen() or fsockopen().