sylph001 has asked for the wisdom of the Perl Monks concerning the following question:

Hi Respective Monks,

I'm having a script to print out a piece of HTML code in its output file which will be viewed.

Meanwhile, the output file is grabbed by some mechanism and displayed on a web tool, which also will be viewed.

The contrary is like, if I let it print out the original HTML code in the output file, the output file will look fine, but on the web tool page the HTML code will be trancated because of the '<' and '>' in it.

To solve this, I let the script convert the '<' to '&#60' and '>' to '&#62' in the output file, then when the web tool page displays the content the whole lot of HTML code shows up right. However in this way, when people directly look at the output file itself, the '&#60' and '&#62' may look somewhat creepy.

So monks, is there a way I can let the HTML code show up nicely on the plain output file as well as the web tool page from the web browser?

Thanks

  • Comment on HTML code escaped from web page on browser

Replies are listed 'Best First'.
Re: HTML code escaped from web page on browser
by NetWallah (Canon) on Jun 24, 2016 at 14:01 UTC
    You could use "encode_entities" from HTML::Entities which is explicitly designed for this, or,
    from the CGI module, use:
    $escaped_string = escapeHTML("<unescaped> string"); #Escape HTML formatting characters in a string.

            This is not an optical illusion, it just looks like one.

Re: HTML code escaped from web page on browser
by $h4X4_&#124;=73}{ (Monk) on Jun 24, 2016 at 10:05 UTC

    I do this on some forms and pages. here is a copy to clipboard JavaScript function with it. You can work out what HTML version you want to use. but this is one way.

    my $Some_HTML_Content = ''; # we can just convert the arrows for any textarea so we don't brake ou +t of # our textarea below. $Some_HTML_Content =~ s/<\/textarea>/&#60;\/textarea&#62;/g; print <<"HTML"; <textarea id="html" name="html">$Some_HTML_Content</textarea> <input type="button" value="Copy To Clipboard" onclick="copy_to_clipbo +ard('html');"> <!-- Copy To Clipboard --> <script> function copy_to_clipboard(id) { document.getElementById('html').select(); document.execCommand('copy'); } </script> HTML

    Update: Or another way I have done it is with JavaScript regex to convert all the HTML entities when you copy to clipboard.

    Update2: or you can just wright the file content as Content-Type: text/plain and display it in an Iframe or JavaScript.

Re: HTML code escaped from web page on browser
by Anonymous Monk on Jun 24, 2016 at 10:00 UTC
    No