How to populate HTML table from local text file.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • alex

    How to populate HTML table from local text file.

    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

    #2
    Re: How to populate HTML table from local text file.

    alex (alexanderelzin ga@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.

    Comment

    • Hans van Kranenburg

      #3
      Re: How to populate HTML table from local text file.

      Malcolm Dew-Jones wrote:[color=blue]
      > alex (alexanderelzin ga@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.[/color]

      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($han dle))) {
      $elements[] = preg_split("/[\s]+/", $line);
      # or:
      # $foo = preg_split("/[\s]+/", $line);
      # ?><tr><td><?=$f oo[0]?></td><td><?=$foo[1]?></td></tr> etc...
      }
      fclose($handle) ;
      print_r($elemen ts);
      ?>
      </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"

      Comment

      • Alan Little

        #4
        Re: How to populate HTML table from local text file.

        Carved in mystic runes upon the very living rock, the last words of alex
        <alexanderelzin ga@hotmail.com> of comp.lang.javas cript make plain:
        [color=blue]
        > 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?[/color]

        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

        Comment

        • McKirahan

          #5
          Re: How to populate HTML table from local text file.

          "Malcolm Dew-Jones" <yf110@vtn1.vic toria.tc.ca> wrote in message
          news:424653de@n ews.victoria.tc .ca...[color=blue]
          > alex (alexanderelzin ga@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.[/color]

          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.


          Comment

          • Mick White

            #6
            Re: How to populate HTML table from local text file.

            alex wrote:
            [color=blue]
            > 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.
            >[/color]
            <div id="foo"><--INCLUDE FILE HERE--></div>
            <script type="text/JavaScript">
            onload= function(){
            var d=document.getE lementById("foo ").innerHTML.sp lit(/\s+/)
            document.getEle mentById("foo") .innerHTML=tabl e_maker(5,d);
            }
            function table_maker(col umns,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>"+arr ay[t++]+"</TD>"
            }
            txt+="</TR>"
            }
            txt+="</TR></TABLE>"
            return txt;
            }
            </script>

            Mick


            Comment

            • alex

              #7
              Re: How to populate HTML table from local text file.

              "McKirahan" <News@McKirahan .com> wrote in message news:<W7ydnViFG pV2VNvfRVn-oQ@comcast.com> ...[color=blue]
              > "Malcolm Dew-Jones" <yf110@vtn1.vic toria.tc.ca> wrote in message
              > news:424653de@n ews.victoria.tc .ca...[color=green]
              > > alex (alexanderelzin ga@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
              > >[/color]
              >
              > Or do you *need* the data in a table for some reason?
              >[/color]

              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.
              [color=blue]
              > Also, I'm not familiar with Lat/Lon presented as "XX,XX";[/color]

              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.[color=blue]
              >
              > 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.
              >[/color]

              Comment

              • RobG

                #8
                Re: How to populate HTML table from local text file.

                McKirahan wrote:
                [...][color=blue]
                >
                > 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:[/color]
                [...]

                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.or g/wiki/ISO_6709>

                Though to ensure full compliance (if required), a copy should be
                purchased from ISO.



                --
                Rob

                Comment

                • alex

                  #9
                  Re: How to populate HTML table from local text file.

                  Mick White <mwhite13BOGUS@ rochester.rr.co m> wrote in message news:<b%z1e.105 483$vK5.22755@t wister.nyroc.rr .com>...[color=blue]
                  > alex wrote:
                  >[color=green]
                  > > 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.
                  > >[/color]
                  > <div id="foo"><--INCLUDE FILE HERE--></div>[/color]

                  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.
                  [color=blue]
                  > <script type="text/JavaScript">
                  > onload= function(){
                  > var d=document.getE lementById("foo ").innerHTML.sp lit(/\s+/)
                  > document.getEle mentById("foo") .innerHTML=tabl e_maker(5,d);
                  > }[/color]
                  [...]

                  Comment

                  • Jeff North

                    #10
                    Re: How to populate HTML table from local text file.

                    On 26 Mar 2005 21:13:39 -0800, in comp.lang.javas cript
                    alexanderelzing a@hotmail.com (alex) wrote:
                    [color=blue]
                    >| 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.[/color]

                    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.dt d">
                    <html xmlns="http://www.w3.org/1999/xhtml">
                    <head>
                    <meta http-equiv="Content-Type" content="text/html;
                    charset=iso-8859-1" />
                    <title>Extern al 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>
                    ---------------------------------------------------------------
                    jnorthau@yourpa ntsyahoo.com.au : Remove your pants to reply
                    ---------------------------------------------------------------

                    Comment

                    • Mick White

                      #11
                      Re: How to populate HTML table from local text file.

                      alex wrote:
                      [color=blue]
                      > Mick White <mwhite13BOGUS@ rochester.rr.co m> wrote in message news:<b%z1e.105 483$vK5.22755@t wister.nyroc.rr .com>...[/color]
                      [...][color=blue][color=green]
                      >>
                      >><div id="foo"><--INCLUDE FILE HERE--></div>[/color]
                      >
                      >
                      > 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.[/color]


                      Search for "SSI".

                      Mick


                      [color=blue]
                      >
                      >[color=green]
                      >><script type="text/JavaScript">
                      >>onload= function(){
                      >>var d=document.getE lementById("foo ").innerHTML.sp lit(/\s+/)
                      >>document.getE lementById("foo ").innerHTML=ta ble_maker(5,d);
                      >>}[/color]
                      >
                      > [...][/color]

                      Comment

                      • RobB

                        #12
                        Re: How to populate HTML table from local text file.

                        alex wrote:[color=blue]
                        > 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[/color]
                        [color=blue]
                        > 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[/color]
                        [color=blue]
                        > 21/03/2005-18:47:51 XX,XX XX,XX 162 3,91[/color]
                        [color=blue]
                        > 21/03/2005-19:29:49 XX,XX XX,XX 500 3,51[/color]
                        [color=blue]
                        > 21/03/2005-20:04:51 XX,XX X,X 75 3,72[/color]
                        [color=blue]
                        >
                        > 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.[/color]

                        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.getE lementById
                        || !document.getEl ementsByTagName )
                        return;
                        var frm = null,
                        prenode,
                        tbod = document.getEle mentById('tbod' ),
                        data = '';
                        if ((frm = top.frames['buffer']) //iframe
                        && frm.document)
                        { //get <pre> parent
                        prenode = frm.document.ge tElementsByTagN ame('pre').item (0);
                        if (null != prenode
                        && null != prenode.firstCh ild
                        && /#text/.test(prenode.f irstChild.nodeN ame)) //text node
                        {
                        data += prenode.firstCh ild.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.create Element('tr'); //new row
                        tbod.appendChil d(tr);
                        rowdata = data[i].split(/\s{3,}/); //separate bits
                        for (ii = 0, ll = rowdata.length; ii < ll; ++ii)
                        {
                        td = document.create Element('td'); //new cell
                        td.appendChild( document.create TextNode(rowdat a[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.

                        Comment

                        Working...