PHP Web Automation Converting Plain Text to HTML - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Web Automation Converting Plain Text to HTML - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

Breaking

Post Top Ad

Post Top Ad

Monday, June 17, 2019

PHP Web Automation Converting Plain Text to HTML

PHP Web Automation


Converting Plain Text to HTML


Problem

You want to turn plain text into reasonably formatted HTML.

Solution

First, encode entities with htmlentities(). Then, transform the text into various HTML structures. 

Example  pc_text2html()

         function pc_text2html($s) {
              $s = htmlentities($s);
              $grafs = split("\n\n",$s);
              for ($i = 0, $j = count($grafs); $i < $j; $i++) {
                   // Link to what seem to be http or ftp URLs
                   $grafs[$i] = preg_replace('/((ht|f)tp:\/\/[^\s&]+)/',
                                                             '<a href="$1">$1</a>',$grafs[$i]);

                   // Link to email addresses
                   $grafs[$i] = preg_replace('/[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}/i',
                          '<a href="mailto:$1">$1</a>',$grafs[$i]);

                   // Begin with a new paragraph
                   $grafs[$i] = '<p>'.$grafs[$i].'</p>';
              }
              return implode("\n\n",$grafs);
         }

Discussion

The more you know about what the plain text looks like, the better your HTML conversion can be. For example, if emphasis is indicated with asterisks (*) or slashes (/) around words, you can add rules that take care of that.

Example  More text-to-HTML rules

         $grafs[$i] = preg_replace('/(\A|\s)\*([^*]+)\*(\s|\z)/',
                                                   '$1<b>$2</b>$3',$grafs[$i]);
         $grafs[$i] = preg_replace('{(\A|\s)/([^/]+)/(\s|\z)}',
                                                   '$1<i>$2</i>$3',$grafs[$i]);



No comments:

Post a Comment

Post Top Ad