I’m trying to dynamically generate a csv file with some cells that will contain multiple lines, the address field for example will need to be grouped into a single “address” cell instead of address,city,state etc. All is going well and but for the last two days i’ve tried to insert \r, \r\n, \n, chr(10),chr(13), as well as a carriage return within the code to create the carriage return i’m looking for within the cell. All of these fail, either being literally printed in my csv as “\r” etc or when I do a manual carriage return in the code it generates a new row. I’m using this to create the breaks in my cells but it isn’t working
$groupedCell = implode('\r',$data);
I’m pretty sure the code is correct as its placing \r where I would like a carriage return but not the actual return i’m looking for. I’ve tried some different encodings but still no luck, I am testing in Open Office which I guess could be the issue but I would assume it can handle carriage returns within a cell and I haven’t seen any documentation to support otherwise. Thanks for reading!
You need to use
"\r". You can’t use escaped characters (aside from\') in single quoted strings.'\n'and'\r'are a literal backslash followed by annorr, while"\n"and"\r"are newlines and carriage returns respectively.As for inserting new lines in your CSV file, it’s up to your implementation. There is no standard for CSV, so you’ll have to figure out what format to use based on the system you’re supplying the CSV data to. Some might accept a
'\n'sequence and interpret it as a new line, others might allow a literal newline provided the cell is enclosed in quotes, and still others will not accept new lines at all.