JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
wrote upload handler (untested
[wfpl.git] / encode.php
index 90ec6c8..5b8eadf 100644 (file)
 #  MA 02111-1307, USA.
 
 
-# This file contains basic encodings
+# This file contains basic encodings. These are used by the encoder. You can
+# specify any template tag to be encoded with this syntax: ~variable.encoding~
+#
+# this example: <p>~foo.html~</p>
+# will encode foo (using enc_html()) before displaying it, so that characters
+# such as < will display properly.
+
+
+# encode for putting within double-quotes in SQL
+function enc_sql($str) {
+       $str = str_replace("\\", "\\\\", $str);
+       $str = str_replace('"', "\\\"", $str);
+       return $str;
+}
 
+# encode for output in html. does nothing with whitespace
 function enc_html($str) {
        $str = str_replace('&', '&amp;', $str);
        $str = str_replace('<', '&lt;', $str);
@@ -37,4 +51,28 @@ function enc_attr($str) {
        return $str;
 }
 
+# this is a stupid hack to work around html's stupid syntax for checkboxes
+function enc_checked($str) {
+       if($str == 'Yes') {
+               return '" checked="checked';
+       } else {
+               return '';
+       }
+}
+
+# add a tab at the begining of each non-empty line
+function enc_tab($str) {
+       $lines = explode("\n", $str);
+       $out = '';
+       foreach($lines as $line) {
+               if($line) {
+                       $out .= "\t$line";
+               }
+               $out .= "\n";
+       }
+
+       # remove the extra newline added above
+       return substr($out, 0, -1);
+}
 
+?>