Jump to content

CSV to HTML - Choosing Fields


millsy007

Recommended Posts

I have some php code that takes a csv file and outputs it to an html table.

 

The problem is that I only want to show certain fields / columns from the csv file in my html table.

 

In this case they are the 5th and 6th columns (named ResponseText and DateAdded)

 

Where in the code could I make this selection?

 

PHP Code:

 

<?php
/*/-------------------------------------------------------------------\
| Original Name : csvview.php |
| Origional Author : Neil Maskell |
| Revised by: Charles W. Reace, Jr. |
| |
| Function : Reads a specified CSV file (Comma seperated) and |
| converts it into a readable HTML table. |
| |
| You could set up a html form with an input field |
| called filename. Then use csvview.php as the action. |
| |
| the reason cache is being disabled is because if you |
| update the csv file the cache doesnt realise and shows|
| an older version of the information. |
| |
| The CSV files should (and normally are) in the format:|
| field1,field2,field3,field4 |
| |
| thanks to Charles W. Reace, Jr. |
| now this works with csv files in the format: |
| "field1","field2","field3","field4" |
| |
\-------------------------------------------------------------------/

*/
//
$filename = "ResponsesText.csv"; // File to open. quote out this variable if you are using a form to link to this script.


/*
No cache!!
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// always modified
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
/*
End of No cache
*/

# bool viewlog(str filename)
# parses input CSV file into table rows
# returns FALSE if cannot open file, otherwise TRUE
function viewlog($filename)
{
$fp = fopen($filename,"r");
if($fp === false)
{
return(false);
}
while(($line = fgetcsv($fp, 1000)) !== false)
{
echo "<tr>";
foreach($line as $value)
{
echo "<td>$value</td>";
}
echo "</tr>\n";
}
return(true);
}

echo "<html><head><base href=\"./\"><title>CSV File Viewer</title></head><body bgcolor=silver>";
// Start the table definition of your choice
echo "<table>\n";
viewlog($filename);
echo "</table></body></html>"; ?>

Link to comment
Share on other sites

try this:

 

<?php
/*/-------------------------------------------------------------------\
| Original Name : csvview.php |
| Origional Author : Neil Maskell |
| Revised by: Charles W. Reace, Jr. |
| |
| Function : Reads a specified CSV file (Comma seperated) and |
| converts it into a readable HTML table. |
| |
| You could set up a html form with an input field |
| called filename. Then use csvview.php as the action. |
| |
| the reason cache is being disabled is because if you |
| update the csv file the cache doesnt realise and shows|
| an older version of the information. |
| |
| The CSV files should (and normally are) in the format:|
| field1,field2,field3,field4 |
| |
| thanks to Charles W. Reace, Jr. |
| now this works with csv files in the format: |
| "field1","field2","field3","field4" |
| |
\-------------------------------------------------------------------/

*/
//
$filename = "ResponsesText.csv"; // File to open. quote out this variable if you are using a form to link to this script.
$limit_columns = array(5,6);


/*
No cache!!
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// always modified
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
/*
End of No cache
*/

# bool viewlog(str filename)
# parses input CSV file into table rows
# returns FALSE if cannot open file, otherwise TRUE
function viewlog($filename)
{
$fp = fopen($filename,"r");
if($fp === false)
{
return(false);
}
while(($line = fgetcsv($fp, 1000)) !== false)
{
echo "<tr>";
foreach($line as $n=>$value)
{
if(!count($limit_columns) || in_array($n+1,$limit_columns)){
echo "<td>$value</td>";
}
}
echo "</tr>\n";
}
return(true);
}

echo "<html><head><base href=\"./\"><title>CSV File Viewer</title></head><body bgcolor=silver>";
// Start the table definition of your choice
echo "<table>\n";
viewlog($filename);
echo "</table></body></html>"; ?>

 

the variable $limit_columns can be adjusted accordingly.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.