v2.01 release
[perl/plp/.git] / plpfunc.pm
1 sub HiddenFields($@){
2     $INTERNAL{hash} = shift;
3     $INTERNAL{saves} = $INTERNAL{q} . (join $INTERNAL{q}, @_) . $INTERNAL{q};
4 #    $INTERNAL{human} = join ',', @_;
5 #    print "<!-- $INTERNAL{hash}: $INTERNAL{human} -->";
6     for (keys %{$INTERNAL{hash}}){
7         print qq{<input type=hidden name="$_" value="${$INTERNAL{hash}}{$_}">}
8             unless $INTERNAL{saves} =~ /$INTERNAL{q}$_$INTERNAL{q}/;
9     }
10 }
11
12 sub NoHeaders($){
13     $_[0] =~ s/^.*?\n\n//;
14     return $_[0]
15 }
16
17 sub Entity($;$$$$){
18     $_[4] ||= 4;
19     $_[0] =~ s/&/&amp;/g;
20     $_[0] =~ s/\"/&quot;/g;
21     $_[0] =~ s/</&lt;/g;
22     $_[0] =~ s/>/&gt;/g;
23     if ($_[1]){
24         $_[0] =~ s/\n/<br>\n/g;
25     }
26     if ($_[2]){
27         $_[0] =~ s/\t/' ' x $_[4]/eg;
28     }
29     if ($_[3]){
30         $_[0] =~ s/  /&nbsp;&nbsp;/g;
31     }
32     return $_[0]
33 }
34
35 sub DecodeURI($;$){
36     my $t = $_[0];
37     $t =~ tr{+} { } unless ($_[1] == 1);
38     $t =~ s{%([0-9A-Fa-f]{2})}
39            {pack('c',hex($1))}ge;
40     return $t;
41 }
42
43 sub EncodeURI($;$){
44     my $t = $_[0];
45     $t =~ s{([^a-zA-Z0-9_\-.])}
46            {uc sprintf("%%%02x",ord($1))}ge;
47     $t =~ s{%20}{+}g if ($_[1] == 1);
48     return $t;
49 }
50
51 sub AddCookie($){
52     if ($header{'set-cookie'}){
53         $header{'set-cookie'} .= "\nset-cookie: $_[0]";
54     }else{
55         $header{'set-cookie'} = $_[0];
56     }
57 }
58
59 sub ReadFile($){
60     my $o = $/; undef $/;    
61     open (READFILE, $_[0]);
62     my $r = <READFILE>;
63     close READFILE;
64     $/ = $o;
65     return $r;
66 }
67
68 sub WriteFile($$){
69     open (WRITEFILE, ">$_[0]");
70     flock WRITEFILE, 2;
71     print WRITEFILE $_[1];
72     close WRITEFILE;
73 }
74 1;