
when using strchr(), you should explicitly check != FALSE, or it'll treat a return value of 0 (found the character at string position 0) as FALSE when calling str_replace(), you must assign $cell the return value or nothing gets saved "orange, burnt","pink, hot",violet,indigo White,gold,"purple, imperial","grey, slate" The test should produce something like the following: This is how I solved the problem without rewriting fputcsv. In general I found myself wanting to get the result as a string rather than writing it to a file, and in particular I wanted to produce a CSV using an EOL that might not be the same as that on the server where I generated it. This replicates PHP5 functionality exactly, whereas the other examples here do not. I converted this from the PHP source code. If fputcsv fails to work for you (particularly with mysql csv imports), try this function as a drop-in replacement instead.Īrguments to pass in are exactly the same as for fputcsv, though I have added an additional $mysql_null boolean which allows one to turn php null's into mysql-insertable nulls (by default, this add-on is disabled, thus working identically to fputcsv ).

(Technically you could omit the headings array and just include it as the first row of the data, but it is often useful to keep this data stored in different arrays in practice.)Īlright, after playing a while, I'm confident the following replacement function works in all cases, including the ones for which the native fputcsv function fails. It takes two parameters + one optional parameter: the location of where the file should be saved, an array of data rows, and an optional array of column headings.
#CREATE TEMP TABLE IN A FOR LOOP IN PHP WINDOWS#
So quite simply, this function is used for outputting CSV data to a CSV file in a way that is safe for use with Windows applications. It would be fairly simple to modify this function to use another delimiter if need be and I leave that as an exercise to the reader. This function accommodates for that as well, by forcibly enclosing that first value in quotes (when this doesn't occur automatically). Secondly, if the first column heading / value of the CSV file begins with uppercase ID, certain Microsoft programs (ahem, Excel 2007) will interpret the file as being in the SYLK format rather than CSV, as described here: So this function changes the line endings accordingly. However, certain Microsoft programs (I'm looking at you, Access 97), will fail to recognize the CSV properly unless each line ends with \r\n. First, since PHP is generally *nix-based, it makes sense that the line endings are always \n instead of \r\n. In the field I learned a few things about generating CSVs that are not always obvious. I've created a function for quickly generating CSV files that work with Microsoft applications. Utility function to output a mysql query to csv with the option to write to file or send back to the browser as a csv attachment.


#CREATE TEMP TABLE IN A FOR LOOP IN PHP ARCHIVE#
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Supported Protocols and Wrappers Security Introduction General considerations Installed as CGI binary Installed as an Apache module Session Security Filesystem Security Database Security Error Reporting User Submitted Data Hiding PHP Keeping Current Features HTTP authentication with PHP Cookies Sessions Dealing with XForms Handling file uploads Using remote files Connection handling Persistent Database Connections Command line usage Garbage Collection DTrace Dynamic Tracing Function Reference Affecting PHP's Behaviour Audio Formats Manipulation Authentication Services Command Line Specific Extensions Compression and Archive Extensions Cryptography Extensions Database Extensions Date and Time Related Extensions File System Related Extensions Human Language and Character Encoding Support Image Processing and Generation Mail Related Extensions Mathematical Extensions Non-Text MIME Output Process Control Extensions Other Basic Extensions Other Services Search Engine Extensions Server Specific Extensions Session Extensions Text Processing Variable and Type Related Extensions Web Services Windows Only Extensions XML Manipulation GUI Extensions Keyboard Shortcuts ? This help j Next menu item k Previous menu item g p Previous man page g n Next man page G Scroll to bottom g g Scroll to top g h Goto homepage g s Goto search
