Philip Hallstrom wrote:
Hello All,
I'm having some issues with carriage returns. Specifically the control M
character (^M). I have attempted to clean and validate the file I'm
creating. Here's the code.
while ($row = mysql_fetch_array($result)){
// assign and clean vars
$artist = trim($row[artist]);
$tdDate = trim($row[start_date]);
$venue = trim($row[venue]);
$city = trim($row[CITY]);
$state = trim($row[STATE]);
$country = trim($row[COUNTRY]);
$tdId = trim($row[td_id]);
// create string
$line = "$artist|||$tdDate||$venue|$city|$state|$country|$tdId\n";
// validate the string
if(preg_match("/.*.|||.*.||.*.|.*.|.*.|.*.|.*.n\//", $line)){
// record is correct so write line to file
fwrite($handle,$line);
}
}
So ^M slips right by trim and my preg_match line.
Where is the carriage return appearing in your line of output? Trim
will remove these, but only at the beginning/end of a string so if
$artist = "Paul\rNowosielski" that won't get cleaned up...
Maybe run them through ereg_replace() using "[\n\r]" as a pattern?
Or maybe use the m modifier?
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php