By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
426,060 Members | 1,893 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 426,060 IT Pros & Developers. It's quick & easy.

How to populate HTML table from local text file.

P: n/a
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.
Jul 17 '05 #1
Share this Question
Share on Google+
11 Replies


P: n/a
alex (al**************@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.
Jul 17 '05 #2

P: n/a
Malcolm Dew-Jones wrote:
alex (al**************@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:

(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"
Jul 17 '05 #3

P: n/a
Carved in mystic runes upon the very living rock, the last words of alex
<al**************@hotmail.com> of comp.lang.javascript make plain:
I am looking for a way to populate an HTML table from an external
local text file which looks like this:

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/
Jul 17 '05 #4

P: n/a
"Malcolm Dew-Jones" <yf***@vtn1.victoria.tc.ca> wrote in message
news:42******@news.victoria.tc.ca...
alex (al**************@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.


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.
Jul 17 '05 #5

P: n/a
alex 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 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_mak er(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
Jul 17 '05 #6

P: n/a
"McKirahan" <Ne**@McKirahan.com> wrote in message news:<W7********************@comcast.com>...
"Malcolm Dew-Jones" <yf***@vtn1.victoria.tc.ca> wrote in message
news:42******@news.victoria.tc.ca...
alex (al**************@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

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.
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.
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.

Jul 17 '05 #7

P: n/a
McKirahan wrote:
[...]

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:

[...]

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
Jul 17 '05 #8

P: n/a
Mick White <mw***********@rochester.rr.com> wrote in message news:<b%********************@twister.nyroc.rr.com> ...
alex 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 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.
<script type="text/JavaScript">
onload= function(){
var d=document.getElementById("foo").innerHTML.split(/\s+/)
document.getElementById("foo").innerHTML=table_mak er(5,d);
}

[...]
Jul 17 '05 #9

P: n/a
On 26 Mar 2005 21:13:39 -0800, in comp.lang.javascript
al**************@hotmail.com (alex) 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 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>
---------------------------------------------------------------
jn******@yourpantsyahoo.com.au : Remove your pants to reply
---------------------------------------------------------------
Jul 17 '05 #10

P: n/a
alex wrote:
Mick White <mw***********@rochester.rr.com> wrote in message news:<b%********************@twister.nyroc.rr.com> ... [...]

<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

<script type="text/JavaScript">
onload= function(){
var d=document.getElementById("foo").innerHTML.split(/\s+/)
document.getElementById("foo").innerHTML=table_m aker(5,d);
}


[...]

Jul 17 '05 #11

P: n/a
alex 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 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.

Jul 17 '05 #12

This discussion thread is closed

Replies have been disabled for this discussion.