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

Reply via email to