CGI-SSI_Parser
view release on metacpan or search on metacpan
SSI_Parser.pm view on Meta::CPAN
} elsif ($line eq "DOCUMENT_URI") {
print FOUT "(none)";
} elsif ($line eq "LAST_MODIFIED") {
print FOUT "(none)";
} else {
print FOUT "(none)";
}
}
# Usage: ssi_exec_cgi($file);
#
sub ssi_exec_cgi {
my $file = shift;
my $line;
local(*FIN);
$file =~ s/^$virtual_path/$real_path\//o;
open(FIN, "$file|");
unless($line = join("", <FIN>)) {
warn("Can't run $file\n") if ($debug);
print FOUT $error_msg;
return;
}
$line =~ /\r?\n\r?\n/o;
$line = $';
if ($recursive) {
sssi($line);
} else {
print FOUT $line;
}
close(FIN);
}
# Usage: ssi_exec_cmd($file);
#
sub ssi_exec_cmd {
my $file = shift;
my $line;
local(*FIN);
open(FIN, "$file|");
unless($line = join("", <FIN>)) {
print FOUT $error_msg;
return;
}
if ($recursive) {
sssi($line);
} else {
print FOUT $line;
}
close(FIN);
}
# Usage: ssi_fsize_file($file);
#
sub ssi_fsize_file {
my $file = shift;
my $size;
$size = (stat("$file"))[7];
if ($sizefmt == $SIZEFMT_KMG) {
if ($size/1048576 >= 1) { # 1024*1024
$size = sprintf("%.1fM", $size/1048576);
} else {
$size = ceil($size/1024) . "k";
}
}
print FOUT $size;
}
# Usage: ssi_fsize_virtual($file);
#
sub ssi_fsize_virtual {
my $file = shift;
$file = "$ENV{'DOCUMENT_ROOT'}/$file";
ssi_fsize_file($file);
}
# Usage: ssi_flastmod_file($file);
#
sub ssi_flastmod_file {
my $file = shift;
my $lastmod;
$lastmod = (stat("$file"))[9];
$lastmod = strftime($timefmt, localtime($lastmod));
print FOUT $lastmod;
}
# Usage: ssi_flastmod_virtual($file);
#
sub ssi_flastmod_virtual {
my $file = shift;
$file = "$ENV{'DOCUMENT_ROOT'}/$file";
ssi_flastmod_file($file);
}
# Usage: ssi_include_file($file);
#
sub ssi_include_file {
my $file = shift;
my $line;
local(*FIN);
unless(open(FIN, $file)) {
print FOUT $error_msg;
warn("Can't open file $file: $!");
return;
}
$line = join("", <FIN>);
if ($recursive) {
sssi($line);
} else {
print FOUT $line;
}
close(FIN);
}
# Usage: ssi_include_virtual($file);
#
sub ssi_include_virtual {
my $file = shift;
$file = "$ENV{'DOCUMENT_ROOT'}/$file";
ssi_include_file($file);
}
# Usage: ssi_printenv();
#
sub ssi_printenv {
foreach (sort keys(%ENV)) {
print "$_=$ENV{$_}\n";
}
}
# Usage: parse_ssi($ssi);
#
sub parse_ssi {
my $ssi = shift;
my($element, @attr);
$ssi =~ /^(\w+)/;
$element = $1;
$ssi = $';
( run in 1.036 second using v1.01-cache-2.11-cpan-39bf76dae61 )