I am just in need to convert a this html table automatically in csv using PHP. Can someone provide any idea how to do this? Thanks.
$table = '<table border="1"> <tr> <th>Header 1</th> <th>Header 2</th> </tr> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> <tr> <td>row 2, cell 1</td> <td>row 2, cell 2</td> </tr> </table>';
Guys, I just need $table to convert in only .csv file, which could be automatically generated using some PHP function. We can define path for that csv file to /test/home/path_to_csv
php $file="demo. xls"; $test="<table ><tr><td>Cell 1</td><td>Cell 2</td></tr></table>"; header("Content-type: application/vnd. ms-excel"); header("Content-Disposition: attachment; filename=$file"); echo $test; ?>
You can use str_get_html
http://simplehtmldom.sourceforge.net/
include "simple_html_dom.php"; $table = '<table border="1"> <tr> <th>Header 1</th> <th>Header 2</th> </tr> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> <tr> <td>row 2, cell 1</td> <td>row 2, cell 2</td> </tr> </table>'; $html = str_get_html($table); header('Content-type: application/ms-excel'); header('Content-Disposition: attachment; filename=sample.csv'); $fp = fopen("php://output", "w"); foreach($html->find('tr') as $element) { $th = array(); foreach( $element->find('th') as $row) { $th [] = $row->plaintext; } $td = array(); foreach( $element->find('td') as $row) { $td [] = $row->plaintext; } !empty($th) ? fputcsv($fp, $th) : fputcsv($fp, $td); } fclose($fp);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With