Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
## Usage: # # EvalExecs($html_to_parse) <== Evaluates <!--#exec -->'s # # EvalIncludes($html_to_parse) <== Evaluates <!--#include -->'s # use Cwd; sub EvalExecs { my($cwd,$path,$html,$action,$mode,$file,$exec); $cwd = getcwd(); if($^O =~ m/win/) { if(substr($cwd,-1,1) eq "\\") {$cwd = substr($cwd,0,(length($cwd)- +1))} } else { $cwd =~ s/\\/\//g; if(substr($cwd,-1,1) eq "/") {$cwd = substr($cwd,0,(length($cwd)-1 +))} } $path = $ENV{'DOCUMENT_ROOT'}; if($^O =~ m/win/) { if(substr($path,-1,1) eq "\\") {$path = substr($path,0,(length($pa +th)-1))} } else { $path =~ s/\\/\//g; if(substr($path,-1,1) eq "/") {$path = substr($path,0,(length($pat +h)-1))} } $html = $_[0]; while($html =~ m/<!--#exec(.+)-->/) { $html =~ s/<__exec(.+)__>/<_INVALID_exec$1_INVALID_>/; $html =~ s/<!--#exec(.+)-->/<__exec$1__>/; $action = $1; if($action =~ m/cmd=/) { $mode = 1; if($action =~ m/cmd="(.+)"/) { $file = $1; } elsif($action =~ m/cmd='(.+)'/) { $file = $1; } } elsif($action =~ m/cgi=/) { $mode = 2; if($action =~ m/cgi="(.+)"/) { $file = $1; } elsif($action =~ m/cgi='(.+)'/) { $file = $1; } } if(!$file) {next} if($mode == 1) { $exec = `$file`; } else { $exec = `perl $file`; } $html =~ s/<__exec(.+)__>/$exec/g; return $html; } $html =~ s/<_INVALID_exec(.+)_INVALID_>/<!--#exec$1-->/g; } sub EvalIncludes { my($cwd,$path,$html,$action,$mode,$file,$final,$include,@temp,@dir,@in +clude); $cwd = getcwd(); if($^O =~ m/win/) { if(substr($cwd,-1,1) eq "\\") {$cwd = substr($cwd,0,(length($cwd)- +1))} } else { $cwd =~ s/\\/\//g; if(substr($cwd,-1,1) eq "/") {$cwd = substr($cwd,0,(length($cwd)-1 +))} } $path = $ENV{'DOCUMENT_ROOT'}; if($^O =~ m/win/) { if(substr($path,-1,1) eq "\\") {$path = substr($path,0,(length($pa +th)-1))} } else { $path =~ s/\\/\//g; if(substr($path,-1,1) eq "/") {$path = substr($path,0,(length($pat +h)-1))} } $html = $_[0]; while($html =~ m/<!--#include(.+)-->/) { $html =~ s/<__include(.+)__>/<_INVALID_include$1_INVALID_>/; $html =~ s/<!--#include(.+)-->/<__include$1__>/; $action = $1; if($action =~ m/file=/) { $mode = 1; if($action =~ m/file="(.+)"/) { $file = $1; } elsif($action =~ m/file='(.+)'/) { $file = $1; } } elsif($action =~ m/virtual=/) { $mode = 2; if($action =~ m/virtual="(.+)"/) { $file = $1; } elsif($action =~ m/virtual='(.+)'/) { $file = $1; } } if(!$file) {next} if($mode == 1) { if(-e "$cwd/$file") {$final = "$cwd/$file"} else { opendir(MAIN,"$cwd"); @temp = readdir(MAIN); closedir(MAIN); foreach $listed (@temp) { if((-d "$cwd/$listed" && ($listed ne "." && $listed ne + "..")) && (-e "$cwd/$listed/$file")) {$final = "$cwd/$listed/$file"; + goto LAST} elsif(-d "$cwd/$listed" && ($listed ne "." && $listed +ne "..")) {push(@dirs,$listed)} } foreach $dir (@dirs) { opendir(DIR,"$cwd/$dir"); @temp = readdir(DIR); closedir(DIR); foreach $listed (@temp) { if(-d "$cwd/$dir/$listed" && -e "$cwd/$dir/$listed +/$file") {$final = "$cwd/$dir/$listed/$file"; goto LAST} elsif(-d "$cwd/$dir/$listed") {push(@dirs,"$dir/$l +isted")} } } } LAST: if(!$final) {next} } else { $final = "$path/$file"; } if(@include) { foreach $i (0..$#include) { shift(@include); } } open(INCLUDE,"$final"); @include = <INCLUDE>; close(INCLUDE); $last = $include[-1]; $include = ''; foreach $i (@include) { chomp($i); if($i eq $last) {$include .= "$i";} else {$include .= "$i\n";} } $html =~ s/<__include(.+)__>/$include/g; return $html; } $html =~ s/<_INVALID_include(.+)_INVALID_>/<!--#include$1-->/g; }

In reply to SSI Emulation Library by EvanK

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others making s'mores by the fire in the courtyard of the Monastery: (5)
    As of 2014-07-13 02:02 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      When choosing user names for websites, I prefer to use:








      Results (245 votes), past polls