Discussion:
How to populate HTML table from local text file.
(too old to reply)
alex
2005-03-27 05:13:39 UTC
Permalink
Hi,

I am looking for a way to populate an HTML table from an external
local text file which looks like this:

DATE/TIME LAT. LON. DEPTH. ML.
-------------------- ---------- ---------- ------- -------
21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
21/03/2005-20:04:51 XX,XX X,X 75 3,72

The file could have more rows (DATA) that I show here. The file is
provided to me on a daily basis and I have to update a web page daily
with the contents of the file.

I considered using JavaScript embedded in the HTML page but I am a
newbie on what scripting for the web it refers.

How can I populate the HTML table with this text file which changes
everyday.

Also, is it possible to use php client-side only, without a server?

Your help, suggestions and feedback questions will be much
appreciated.

Thanks.

Alex.
Malcolm Dew-Jones
2005-03-27 06:34:06 UTC
Permalink
alex (***@hotmail.com) wrote:
: Hi,

: I am looking for a way to populate an HTML table from an external
: local text file which looks like this:

: DATE/TIME LAT. LON. DEPTH. ML.
: -------------------- ---------- ---------- ------- -------
: 21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
: 21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
: 21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
: 21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
: 21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
: 21/03/2005-20:04:51 XX,XX X,X 75 3,72

the absolutely easiest way is to simply wrap the above text with the <pre>
</pre> tags.

<html>
<head> <title> data from 21/03/2005 </title> </head>
<body>
<pre>
DATE/TIME LAT. LON. DEPTH. ML.
-------------------- ---------- ---------- ------- -------
21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
</pre>
</body>
</html>

--

This space not for rent.
Hans van Kranenburg
2005-03-27 12:51:47 UTC
Permalink
(knip)
the absolutely easiest way is to simply wrap the above text with the
<pre> </pre> tags.
That's not an HTML table... :S

Using server-side php it's not that difficult. You can generate the HTML
table only one-a-day, or always on the fly...

Read the file, split up the colums, and generate some table code, while
putting the values in it.

Here's one example how you can read the file. This one creates an array
with all the values, but of course you can print the table-html directly.

<pre>
<?php
$handle = fopen("./data.txt", 'r');
$elements = array();
while ($line = trim(fgets($handle))) {
$elements[] = preg_split("/[\s]+/", $line);
# or:
# $foo = preg_split("/[\s]+/", $line);
# ?><tr><td><?=$foo[0]?></td><td><?=$foo[1]?></td></tr> etc...
}
fclose($handle);
print_r($elements);
?>
</pre>

output:

Array
(
[0] => Array
(
[0] => 21/03/2005-04:06:03
[1] => XX,XX
[2] => XX,XX
[3] => 171
[4] => 3,42
)

[1] => Array
(
[0] => 21/03/2005-12:23:53
[1] => XX,XX
[2] => XX,XX
[3] => 500
[4] => 5,4
)
)

Hans
--
"He who asks a question is a fool for five minutes;
he who does not ask a question remains a fool forever"
McKirahan
2005-03-27 14:58:03 UTC
Permalink
Post by Malcolm Dew-Jones
: Hi,
: I am looking for a way to populate an HTML table from an external
: DATE/TIME LAT. LON. DEPTH. ML.
: -------------------- ---------- ---------- ------- -------
: 21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
: 21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
: 21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
: 21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
: 21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
: 21/03/2005-20:04:51 XX,XX X,X 75 3,72
the absolutely easiest way is to simply wrap the above text with the <pre>
</pre> tags.
I like Malcom's solution for its ease.

Or do you *need* the data in a table for some reason?

Perhaps to right-align numbers or hyperlink cells?


Also, I'm not familiar with Lat/Lon presented as "XX,XX";

Per http://jan.ucc.nau.edu/~cvm/latlongdist.html

Valid formats for Latitudes and Longitudes are:

option 1: dddmmssD or ddd mm'ss" D

where ddd = 1-3 digits for degrees, mm = 2 digits for minutes, ss = 2 digits
for seconds and D = N,S,E, or W. The seconds and special characters (spaces,
apostrophes, quotes) are all optional in this format. This leads to quite a
large number of possible valid formats.

option 2: ddd.ffffD

where ddd = 0-3 digits, ffff = 0-10 digits and D = N,S,E, or W. This format
represents a decimal number of degrees. If the number of degrees is a whole
number, the decimal point is optional.

option3: ddd mm.ffff'D

where ddd = 0-3 digits for degrees, mm = 2 digits for minutes, ffff = 0-10
digits for decimal portion of minutes and D = N,S,E, or W. This format
represents degrees and a decimal number of minutes.
alex
2005-03-28 04:34:35 UTC
Permalink
Post by McKirahan
Post by Malcolm Dew-Jones
: Hi,
: I am looking for a way to populate an HTML table from an external
: DATE/TIME LAT. LON. DEPTH. ML.
: -------------------- ---------- ---------- ------- -------
: 21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
: 21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
: 21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
: 21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
: 21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
: 21/03/2005-20:04:51 XX,XX X,X 75 3,72
Or do you *need* the data in a table for some reason?
Thanks for your answer, McKirahan. Just as a follow-up to some
questions...
I do need the data in a table in order to hyperlink some cells.
Post by McKirahan
Also, I'm not familiar with Lat/Lon presented as "XX,XX";
Sorry, I only made a representation of Lat/Lon in order not to reveal
actual values of Lat/Lon that correspond to data in my organization.
The values for Lat/Lon given to me are according to option 2 below,
decimal number of degrees. Thanks for the good input.
Post by McKirahan
Per http://jan.ucc.nau.edu/~cvm/latlongdist.html
option 2: ddd.ffffD
where ddd = 0-3 digits, ffff = 0-10 digits and D = N,S,E, or W. This format
represents a decimal number of degrees. If the number of degrees is a whole
number, the decimal point is optional.
RobG
2005-03-28 12:46:11 UTC
Permalink
McKirahan wrote:
[...]
Post by McKirahan
Also, I'm not familiar with Lat/Lon presented as "XX,XX";
Per http://jan.ucc.nau.edu/~cvm/latlongdist.html
[...]

Whilst your reference to the Northern Arizona University may have
appropriate formats for the OP's purposes, the international standard
is ISO 6709:1983.

There are 2 main difference between ISO and your quoted source;

1. Hemispheres are denoted by "-" for W and S and "+" for E and N. I
suppose the mathematical symbols are more widely understood than
letters from the English alphabet.

2. The ISO formats are unambiguous.

A free version of the standard can be found here:

<URL:http://en.wikipedia.org/wiki/ISO_6709>

Though to ensure full compliance (if required), a copy should be
purchased from ISO.
--
Rob
Alan Little
2005-03-27 14:12:11 UTC
Permalink
Carved in mystic runes upon the very living rock, the last words of alex
Post by alex
I am looking for a way to populate an HTML table from an external
How can I populate the HTML table with this text file which changes
everyday.
Also, is it possible to use php client-side only, without a server?
Yes and no. No, you can't run PHP locally and have it integrate with
pages served to your browser from somewhere else. Yes, you can install a
web server such as Apache on your local machine and have it serve pages
to you locally, integrating with PHP as desired. This is most likely what
I would do if my production server didn't have PHP (well, actually I
would get a different provider in that case); install Apache and PHP
locally, write a PHP script to read the file and generate the output,
upload static content to production server.
--
Alan Little
Phorm PHP Form Processor
http://www.phorm.com/
Mick White
2005-03-27 15:07:51 UTC
Permalink
Post by alex
Hi,
I am looking for a way to populate an HTML table from an external
DATE/TIME LAT. LON. DEPTH. ML.
-------------------- ---------- ---------- ------- -------
21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
21/03/2005-20:04:51 XX,XX X,X 75 3,72
The file could have more rows (DATA) that I show here. The file is
provided to me on a daily basis and I have to update a web page daily
with the contents of the file.
I considered using JavaScript embedded in the HTML page but I am a
newbie on what scripting for the web it refers.
<div id="foo"><--INCLUDE FILE HERE--></div>
<script type="text/JavaScript">
onload= function(){
var d=document.getElementById("foo").innerHTML.split(/\s+/)
document.getElementById("foo").innerHTML=table_maker(5,d);
}
function table_maker(columns,array){
var txt="<TABLE cellpadding=1 cellspacing=1 border=1>"
var rows=Math.ceil(array.length/columns);
for(var r=0,t=0;r<rows;r++){
txt+="<TR>"
for(var c=0;c<columns;c++){
txt+="<TD>"+array[t++]+"</TD>"
}
txt+="</TR>"
}
txt+="</TR></TABLE>"
return txt;
}
</script>

Mick
alex
2005-03-29 09:10:31 UTC
Permalink
Post by Mick White
Post by alex
Hi,
I am looking for a way to populate an HTML table from an external
DATE/TIME LAT. LON. DEPTH. ML.
-------------------- ---------- ---------- ------- -------
21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
21/03/2005-20:04:51 XX,XX X,X 75 3,72
The file could have more rows (DATA) that I show here. The file is
provided to me on a daily basis and I have to update a web page daily
with the contents of the file.
I considered using JavaScript embedded in the HTML page but I am a
newbie on what scripting for the web it refers.
<div id="foo"><--INCLUDE FILE HERE--></div>
Forgive my ignorance, but, how do i include the file as dictated right
above?
Is there some kind of HTML statement that allows you to include an
external text file ? Please clarify as am a newbie on this. Thanks
Mick.

Alex.
Post by Mick White
<script type="text/JavaScript">
onload= function(){
var d=document.getElementById("foo").innerHTML.split(/\s+/)
document.getElementById("foo").innerHTML=table_maker(5,d);
}
[...]
Mick White
2005-03-31 19:48:53 UTC
Permalink
[...]
Post by alex
Post by Mick White
<div id="foo"><--INCLUDE FILE HERE--></div>
Forgive my ignorance, but, how do i include the file as dictated right
above?
Is there some kind of HTML statement that allows you to include an
external text file ? Please clarify as am a newbie on this. Thanks
Mick.
Alex.
Search for "SSI".

Mick
Post by alex
Post by Mick White
<script type="text/JavaScript">
onload= function(){
var d=document.getElementById("foo").innerHTML.split(/\s+/)
document.getElementById("foo").innerHTML=table_maker(5,d);
}
[...]
Jeff North
2005-03-29 12:58:30 UTC
Permalink
On 26 Mar 2005 21:13:39 -0800, in comp.lang.javascript
| Hi,
|
| I am looking for a way to populate an HTML table from an external
|
| DATE/TIME LAT. LON. DEPTH. ML.
| -------------------- ---------- ---------- ------- -------
| 21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
| 21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
| 21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
| 21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
| 21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
| 21/03/2005-20:04:51 XX,XX X,X 75 3,72
|
| The file could have more rows (DATA) that I show here. The file is
| provided to me on a daily basis and I have to update a web page daily
| with the contents of the file.
|
| I considered using JavaScript embedded in the HTML page but I am a
| newbie on what scripting for the web it refers.
|
| How can I populate the HTML table with this text file which changes
| everyday.
|
| Also, is it possible to use php client-side only, without a server?
|
| Your help, suggestions and feedback questions will be much
| appreciated.
You could use javascript to open and read the file. If the user has
javascript disabled then they will see nothing.

Alternatively you could use an IFrame on your page to display your
file.

If the file extension is txt then browsers will display the text as it
appears in the file - no formatting.

If the file extension is csv then Internet Explorer will reformat the
text and display it in a limited Excel spreadsheet layout. Other
browsers (Firefox) will just show the text.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>External text file</title>
</head>

<body>
<P>this is some text, menus etc</P>
<iframe src="pc-full.csv" width="100%" frameborder="1"
scrolling="auto" height="350px"></iframe>
</body>
</html>
---------------------------------------------------------------
***@yourpantsyahoo.com.au : Remove your pants to reply
---------------------------------------------------------------
RobB
2005-03-31 22:28:38 UTC
Permalink
Post by alex
Hi,
I am looking for a way to populate an HTML table from an external
DATE/TIME LAT. LON. DEPTH. ML.
-------------------- ---------- ---------- ------- -------
21/03/2005-04:06:03 XX,XX XX,XX 171 3,42
21/03/2005-12:23:53 XX,XX XX,XX 500 5,4
21/03/2005-12:43:10 XX,XX XX,XX 553 5,38
21/03/2005-18:47:51 XX,XX XX,XX 162 3,91
21/03/2005-19:29:49 XX,XX XX,XX 500 3,51
21/03/2005-20:04:51 XX,XX X,X 75 3,72
The file could have more rows (DATA) that I show here. The file is
provided to me on a daily basis and I have to update a web page daily
with the contents of the file.
I considered using JavaScript embedded in the HTML page but I am a
newbie on what scripting for the web it refers.
How can I populate the HTML table with this text file which changes
everyday.
Also, is it possible to use php client-side only, without a server?
Your help, suggestions and feedback questions will be much
appreciated.
Thanks.
Alex.
Server-based preprocessors were designed for this sort of thing; any
time you attempt it at the client, you're in the wild-wild-west, so to
speak, hoping for a reasonably controlled environment (unlikely).
Nevertheless: you could simply download that text file into a hidden
iframe in the page and extract the data from there...browser support
for this - and DOM table-building - is pretty good these days. See if
this does anything. You may have to find any control characters
inserted by googlegroups and s & r them....sorry about that.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">

body {
font-size: 100%;
background: #9a9;
}
h3 {
width: 180px;
font: 18px "arial black";
color: #474;
margin: 80px auto 0 auto;
}
#stuff {
width: 600px;
margin: 10px auto;
}
#stuff th {
font: 11px "arial black";
color: #060;
letter-spacing: .4em;
border-left: 3px #000 solid;
border-right: 1px #000 solid;
background: #fff;
}
#stuff td {
font: normal 12px monospace;
text-align: center;
padding: 3px;
border-top: 1px #888 solid;
border-right: 1px #000 solid;
border-bottom: 1px #888 solid;
border-left: 3px #000 solid;
background: #d0d8d0;
}
#buffer {
display: none;
}

</style>
<script type="text/javascript">

onload = function()
{
if (!document.getElementById
|| !document.getElementsByTagName)
return;
var frm = null,
prenode,
tbod = document.getElementById('tbod'),
data = '';
if ((frm = top.frames['buffer']) //iframe
&& frm.document)
{ //get <pre> parent
prenode = frm.document.getElementsByTagName('pre').item(0);
if (null != prenode
&& null != prenode.firstChild
&& /#text/.test(prenode.firstChild.nodeName)) //text node
{
data += prenode.firstChild.data; //read
data = data.split(/[\n\r]/); //separate lines
data.splice(0, 2); //lose first two (legend)
var i = 0,
l = data.length,
rowdata,
ii, ll, tr, td;
for (; i < l; ++i)
{
tr = document.createElement('tr'); //new row
tbod.appendChild(tr);
rowdata = data[i].split(/\s{3,}/); //separate bits
for (ii = 0, ll = rowdata.length; ii < ll; ++ii)
{
td = document.createElement('td'); //new cell
td.appendChild(document.createTextNode(rowdata[ii]));
tr.appendChild(td);
}
}
}
}
}

</script>
</head>
<body>
<h3>&amp;#149; Mystery Data &amp;#149;</h3>
<table id="stuff">
<thead>
<tr>
<th>DATE/TIME</th>
<th>LAT.</th>
<th>LON.</th>
<th>DEPTH.</th>
<th>ML.</th>
</tr>
</thead>
<tbody id="tbod">
</tbody>
</table>
<iframe id="buffer" name="buffer" src="data.txt"></iframe>
</body>
</html>

Made some assumptions about the consistency of the text formatting.
Continue reading on narkive:
Loading...