August 14th, 2006

How to Build a Simple Chat Application with PHP

Do you have an online support system with which you'd like to be able to enable live chat? Well, you can either pay for a service hosted by a 3rd party, or you could easily just build one yourself unsing PHP. This simple chat system will take user input from an HTML form, store it in a text file, and display it on the screen.

Save the code below as chat.php. Also, you'll need to create a writeable text file called msg.txt, in the same directory.

There is code included to

  • strip HTML markup
  • set the max number of chat messages displayed. the default is 10
  • set a maximum filesize for msg.txt (default is about 100Kb). When it hits the maximum, it archives the old messages to a past message text file.
  • <?
    $person = str_replace ("\n"," ", $person);
    $person = str_replace ("<", " ", $person); //take out HTML tags
    $person = str_replace (">", " ", $person);
    $person = stripslashes ($person);
    ?>
    <form action="chat.php" method="post">
    Nickname: <input type="text" name="person" size="40" maxlength="80" value="<? echo $person; ?>"><br>
    Your message: <textarea name="message" rows="3" cols="40"></textarea>
    <input type="submit" value="Send/refresh">
    </form>
    <?

    $chat_file_ok = "./msg.txt";
    $chat_length = 10;

    $max_single_msg_length = 100000;
    $max_file_size = $chat_length * $max_single_msg_length;

    $file_size= filesize($chat_file);

                           
    if ($file_size > $max_file_size) {

    // reads file and stores each line $lines' array elements
    $lines = file($chat_file_ok);
    //get number of lines

    $a = count($lines);

    $u = $a - $chat_lenght;
    for($i = $a; $i >= $u ;$i){
                    $msg_old$lines[$i] . $msg_old;
            }
    $deleted = unlink($chat_file_ok);
    $fp = fopen($chat_file_ok, "a+");
    $fw = fwrite($fp, $msg_old);
    fclose($fp);
    }

    // every message has to be placed into one single line in the msg.txt file.  You can render \n (new lines) with "<br>" html tag

    $msg = str_replace ("\n"," ", $message);

    //      if the user writes something the new message is appended to the msg.txt file
                   
    // strip avoid buggy html code and slashes
    $msg = str_replace ("\n"," ", $message);
    $msg = str_replace ("<", " ", $msg);
    $msg = str_replace (">", " ", $msg);
    $msg = stripslashes ($msg);

    if ($msg != ""){

    $fp = fopen($chat_file_ok, "a+");
    $fw = fwrite($fp, "\n<b>$person :</b> $msg<br>");
    fclose($fp);
    }

    $lines = file($chat_file_ok);
    $a = count($lines);

    $u = $a - $chat_lenght;

    /*      reads the array in reverse order and outputs to chat  */
    for($i = $a; $i >= $u ;$i){
                    echo $lines[$i] . "<hr>";
            }

    ?>

3 Responses to ' How to Build a Simple Chat Application with PHP '

Subscribe to comments with RSS or TrackBack to ' How to Build a Simple Chat Application with PHP '.

  1. ramya said,

    on August 24th, 2006 at 1:02 am

    hey can i do a complete chat application with the above code??????
    im very much new to php…….
    can u help

  2. Justin Cook said,

    on August 24th, 2006 at 9:02 am

    You might want to check out PHPmychat for that

  3. I want concept of implementing chat,wuold u help me said,

    on May 9th, 2007 at 5:57 am

    It's a nice code

Leave a reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-Spam Image