Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 9 of 9
  1. #1
    New Coder
    Join Date
    Apr 2011
    Posts
    25
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Question Foreach Echo Text Document, Target Styles By Line

    Hey guys! I need a little help with something... but please keep in mind I am a PHPN00B so pls don't hit me in the face

    Basically, I have a text document named headline.txt which contains the following lines:

    Lilly Creightmore

    Homemaker, photographer, blogger.

    Crystal Palace, London, United Kingdom, January 2011


    Then I have pulled that out using the following code:

    Code:
    <?php 		
       $text_file1 = glob('headline.txt');
    ?>
    <?php foreach ($text_file1 as $key => $file1) : ?>		
       <?php echo nl2br(file_get_contents($file1)); ?>
       <br />
       <br />
    <?php endforeach; ?>
    This is all fine and well, works perfectly, as you can see in the div with the class "luckypeopletop" over here: http://we-are-lucky.com/stage/666/Th...Ben/index2.php

    However, is it possible to target each line with a separate style class? For example, one style for Lilly Creightmore, a different one for Homemaker, photographer, blogger. etc.

    Ideally, it would eventually look like this: http://we-are-lucky.com/stage/666/The-Lucky/Ben/

    Does this even make sense? Regardless, thanks for reading

  • #2
    Master Coder mlseim's Avatar
    Join Date
    Jun 2003
    Location
    Cottage Grove, Minnesota
    Posts
    9,387
    Thanks
    8
    Thanked 1,077 Times in 1,068 Posts
    Can your text file look like this, where you insert HTML/CSS into the actual text file?

    The first line looks at your CSS style sheet for the class called "topLine".
    The next line uses "inline CSS" to define it right there in the line.

    Code:
    <div class="topLine">Lilly Creightmore</div><br />
    <br />
    <span style="color:#a00000";>Homemaker, photographer, blogger.</span><br />
    <br />
    Crystal Palace, London, United Kingdom, January 2011<br />
    Wherever you want that text file to appear, you include it ...

    <html>
    <style>
    .topLine{
    font-family:arial;
    color:#00a000;
    }
    </style>
    <body>
    Hi there, this is my site <br /><br />

    <?php include("headline.txt");?>

    </body>
    </html>


    .
    Last edited by mlseim; 10-03-2011 at 07:25 PM.

  • #3
    New Coder
    Join Date
    Apr 2011
    Posts
    25
    Thanks
    4
    Thanked 0 Times in 0 Posts
    That is a very good suggestion, but the main reason I am approaching things this way is so that my client can add information just by writing a text file. I am worried adding styles into the text document would just confuse them :/

    If that is the only way, so be it, but I was hoping someone would have some fancy idea I could implement.

    Thanks for the reply tho mlseim!

  • #4
    Senior Coder
    Join Date
    Aug 2006
    Posts
    1,139
    Thanks
    7
    Thanked 257 Times in 256 Posts
    There may be a fancier way, but here's one solution:
    PHP Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>

    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>Untitled 1</title>
    <style type="text/css">
    .s1 {color:#F00}
    .s2 {color:#0F0}
    .s3 {color:#00F}
    </style>
    </head>

    <body>

    <p>    
    <?php
        $fp 
    fopen ('headline.txt','r');
        echo 
    "<span class='s1'>".fgets ($fp)."<br></span>";
        echo 
    "<span class='s2'>".fgets ($fp)."<br></span>";
        echo 
    "<span class='s3'>".fgets ($fp)."<br></span>";
    ?>
    </p>
    </body>
    </html>

  • Users who have thanked tracknut for this post:

    LegoTrip (10-04-2011)

  • #5
    Master Coder mlseim's Avatar
    Join Date
    Jun 2003
    Location
    Cottage Grove, Minnesota
    Posts
    9,387
    Thanks
    8
    Thanked 1,077 Times in 1,068 Posts
    Is the information structured? Or will it be sort of free-form?

  • #6
    JV-
    JV- is offline
    New Coder
    Join Date
    Oct 2011
    Posts
    19
    Thanks
    0
    Thanked 3 Times in 3 Posts
    If you could have the client edit a CSV file or XML file instead, you could easily manipulate the data with PHP and apply styles to different areas.

    You could also do the same with a fixed length text file, but that may be too confusing for the client.

    Answering mlseim's question will help to determine the best solution.

  • #7
    Master Coder mlseim's Avatar
    Join Date
    Jun 2003
    Location
    Cottage Grove, Minnesota
    Posts
    9,387
    Thanks
    8
    Thanked 1,077 Times in 1,068 Posts
    I'm steering toward the idea that the OP doesn't use MySQL. So, they can also
    avoid using .txt files as well. They can use Google Docs (spreadsheet). Allow certain
    Google accounts to access the spreadsheet ... and it's all free. A PHP script can
    easily read the data and process it, just like a database.

  • #8
    New Coder
    Join Date
    Sep 2011
    Posts
    24
    Thanks
    1
    Thanked 3 Times in 3 Posts
    Maybe something like this?
    PHP Code:

    $classes 
    = array('class1''class2''class3');
    $file file_get_contents($filename);
    $current 0;

    foreach(
    $file as $line) {
         echo 
    '<span class="'.$classes[$current].'">'.$line.'</div>';
         
    $current++;


  • #9
    New Coder
    Join Date
    Apr 2011
    Posts
    25
    Thanks
    4
    Thanked 0 Times in 0 Posts
    Wow, you guys are great, thanks so much for all your help.

    I went with tracknut's suggestion, and it worked perfectly. That's some sexy php ninja skills right there buddy, thanks a million! Exactly what I was asking.

    coin, your suggestion seems really cool too, I will definitely look into using arrays in the future too.

    All of you are awesome, seriously, thanks so much!!!!


  •  

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •