]> git.mxchange.org Git - mailer.git/blobdiff - 0.2.1/inc/libs/html_mail_functions.php
win32 to unix line delimiters changed
[mailer.git] / 0.2.1 / inc / libs / html_mail_functions.php
index 0ad0ebc6c1e62870c16a9e05694453986ac0f963..ce48a033e29bffa47376def25142399d1f0f3647 100644 (file)
-<?php\r
-/************************************************************************\r
- * MXChange v0.2.1                                    Start: 04/25/2004 *\r
- * ================                             Last change: 04/29/2004 *\r
- *                                                                      *\r
- * -------------------------------------------------------------------- *\r
- * File              : html_mail_functions.php                          *\r
- * -------------------------------------------------------------------- *\r
- * Short description : Functions for the HTML extension                 *\r
- * -------------------------------------------------------------------- *\r
- * Kurzbeschreibung  : Funktionen fuer die HTML-Erweiterung             *\r
- * -------------------------------------------------------------------- *\r
- *                                                                      *\r
- * -------------------------------------------------------------------- *\r
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *\r
- * For more information visit: http://www.mxchange.org                  *\r
- *                                                                      *\r
- * This program is free software; you can redistribute it and/or modify *\r
- * it under the terms of the GNU General Public License as published by *\r
- * the Free Software Foundation; either version 2 of the License, or    *\r
- * (at your option) any later version.                                  *\r
- *                                                                      *\r
- * This program is distributed in the hope that it will be useful,      *\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of       *\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *\r
- * GNU General Public License for more details.                         *\r
- *                                                                      *\r
- * You should have received a copy of the GNU General Public License    *\r
- * along with this program; if not, write to the Free Software          *\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *\r
- * MA  02110-1301  USA                                                  *\r
- ************************************************************************/\r
-\r
-// Some security stuff...\r
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))\r
-{\r
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";\r
-       require($INC);\r
-}\r
-//\r
-function HTML_ADD_VALID_TAGS()\r
-{\r
-       global $HTML_TAGS; $OUT = "";\r
-       if (!is_array($HTML_TAGS)) return "";\r
-       foreach ($HTML_TAGS as $tag)\r
-       {\r
-               $OUT .= ", ".strtoupper($tag);\r
-       }\r
-       $OUT = substr($OUT, 2);\r
-       return $OUT;\r
-}\r
-//\r
-function HTML_CHECK_TAGS($html)\r
-{\r
-       global $HTML_TAGS;\r
-       $test = stripslashes($html);\r
-       while (ereg("<", $test) && ereg(">", $test))\r
-       {\r
-               $check = strtolower(substr($test, strpos($test, "<") + 1, strpos($test, ">") - strpos($test, "<") - 1));\r
-               $check = str_replace("/", "", $check);\r
-               if (!in_array($check, $HTML_TAGS))\r
-               {\r
-                       // Invalid tag found!\r
-                       return "";\r
-               }\r
-               $test = substr($test, strpos($test, ">") + 1);\r
-       }\r
-       // Return tested code\r
-       return $html;\r
-}\r
-//\r
-function HTML_INSERT_URLS($text)\r
-{\r
-       global $URL_ENDS, $VALID_EMAIL_CHARS;\r
-       $test = $text;\r
-\r
-       // First replace URLs...\r
-       while (ereg("http://", $test))\r
-       {\r
-               $check = substr($test, strpos($test, "http://")); $check2 = $check;\r
-\r
-               // See ext-html.php if you want to add more URL ends...\r
-               foreach ($URL_ENDS as $end)\r
-               {\r
-                       if (ereg($end, $check)) $check = substr($check, 0, strpos($check, $end));\r
-               }\r
-\r
-               // Now replace the URL against anchor container and pray...\r
-               $text = substr($text, 0, strpos($text, $check2))."<A href=\"".DEREFERER($check)."\" target=\"_blank\">".$check."</A>".substr($text, strpos($text, $check2) + strlen($check));\r
-\r
-               // Finally remove the url from testing string (or we have a loop and maybe server overload!)\r
-               $test = substr($test, strpos($test, $check) + strlen($check));\r
-       }\r
-\r
-       // Now do the (nearly) same thing with email addresses\r
-       // but now we have the problem that email addresses didn't have\r
-       // a start mark like http:// and our templates are lame didn't have\r
-       // a mailto: ... :-(\r
-       $test = $text;\r
-\r
-       // ... what will the email address be out the @... ;-)\r
-       $PARTS = array();\r
-       while (ereg("@", $test))\r
-       {\r
-               $pos = strpos($test, "@");\r
-               $test2 = substr($test, 0, $pos);\r
-\r
-               // First check backwards\r
-               $idx = $pos - 1;\r
-               while ($idx > 0)\r
-               {\r
-                       $check = substr($test2, $idx, 1);\r
-                       if (!in_array($check, $VALID_EMAIL_CHARS))\r
-                       {\r
-                               // Char found so we end here\r
-                               break;\r
-                       }\r
-                       $idx--;\r
-               }\r
-               if ($idx > 0)\r
-               {\r
-                       // Starting mark is found\r
-                       $check2 = substr($test, 0, ($idx + 1));\r
-                       $test = substr($test, ($idx + 1));\r
-               }\r
-\r
-               // And now go forward...\r
-               $idx = 0;\r
-               while ($idx < strlen($test))\r
-               {\r
-                       $check = substr($test, $idx, 1);\r
-                       if ((!in_array($check, $VALID_EMAIL_CHARS)) && ($check != "@"))\r
-                       {\r
-                               // Char found so end here again\r
-                               break;\r
-                       }\r
-                       $idx++;\r
-               }\r
-               if ($idx > 0)\r
-               {\r
-                       // Maybe this is the email address?\r
-                       $check = substr($test, 0, $idx);\r
-               }\r
-\r
-               // Now replace the email against anchor with mailto and pray...\r
-               $PARTS[] = $check2."<A href=\"mailto:".$check."\">".$check."</A>";\r
-\r
-               // Remove email from testing string (see above why...)\r
-               $test = substr($test, strlen($check));\r
-       }\r
-       // Now put all parts together\r
-       $text = ""; $PARTS[] = $test;\r
-       foreach ($PARTS as $part)\r
-       {\r
-               $text .= $part;\r
-       }\r
-\r
-       // Replace new-lines agains <BR>-s and finally compile possible own HTML tags out...\r
-       return COMPILE_CODE(str_replace("\n", "<BR>\n", $text));\r
-}\r
-//\r
-function SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM)\r
-{\r
-       if (EXT_IS_ACTIVE("html_mail"))\r
-       {\r
-               // Send mail away as HTML\r
-               $FROM = "Content-Type: text/html\n".$FROM;\r
-               SEND_EMAIL($TO, $SUBJECT, $MSG, "N", $FROM);\r
-       }\r
-}\r
-//\r
-?>\r
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/25/2004 *
+ * ================                             Last change: 04/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : html_mail_functions.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the HTML extension                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die HTML-Erweiterung             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.org                  *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function HTML_ADD_VALID_TAGS()
+{
+       global $HTML_TAGS; $OUT = "";
+       if (!is_array($HTML_TAGS)) return "";
+       foreach ($HTML_TAGS as $tag)
+       {
+               $OUT .= ", ".strtoupper($tag);
+       }
+       $OUT = substr($OUT, 2);
+       return $OUT;
+}
+//
+function HTML_CHECK_TAGS($html)
+{
+       global $HTML_TAGS;
+       $test = stripslashes($html);
+       while (ereg("<", $test) && ereg(">", $test))
+       {
+               $check = strtolower(substr($test, strpos($test, "<") + 1, strpos($test, ">") - strpos($test, "<") - 1));
+               $check = str_replace("/", "", $check);
+               if (!in_array($check, $HTML_TAGS))
+               {
+                       // Invalid tag found!
+                       return "";
+               }
+               $test = substr($test, strpos($test, ">") + 1);
+       }
+       // Return tested code
+       return $html;
+}
+//
+function HTML_INSERT_URLS($text)
+{
+       global $URL_ENDS, $VALID_EMAIL_CHARS;
+       $test = $text;
+
+       // First replace URLs...
+       while (ereg("http://", $test))
+       {
+               $check = substr($test, strpos($test, "http://")); $check2 = $check;
+
+               // See ext-html.php if you want to add more URL ends...
+               foreach ($URL_ENDS as $end)
+               {
+                       if (ereg($end, $check)) $check = substr($check, 0, strpos($check, $end));
+               }
+
+               // Now replace the URL against anchor container and pray...
+               $text = substr($text, 0, strpos($text, $check2))."<A href=\"".DEREFERER($check)."\" target=\"_blank\">".$check."</A>".substr($text, strpos($text, $check2) + strlen($check));
+
+               // Finally remove the url from testing string (or we have a loop and maybe server overload!)
+               $test = substr($test, strpos($test, $check) + strlen($check));
+       }
+
+       // Now do the (nearly) same thing with email addresses
+       // but now we have the problem that email addresses didn't have
+       // a start mark like http:// and our templates are lame didn't have
+       // a mailto: ... :-(
+       $test = $text;
+
+       // ... what will the email address be out the @... ;-)
+       $PARTS = array();
+       while (ereg("@", $test))
+       {
+               $pos = strpos($test, "@");
+               $test2 = substr($test, 0, $pos);
+
+               // First check backwards
+               $idx = $pos - 1;
+               while ($idx > 0)
+               {
+                       $check = substr($test2, $idx, 1);
+                       if (!in_array($check, $VALID_EMAIL_CHARS))
+                       {
+                               // Char found so we end here
+                               break;
+                       }
+                       $idx--;
+               }
+               if ($idx > 0)
+               {
+                       // Starting mark is found
+                       $check2 = substr($test, 0, ($idx + 1));
+                       $test = substr($test, ($idx + 1));
+               }
+
+               // And now go forward...
+               $idx = 0;
+               while ($idx < strlen($test))
+               {
+                       $check = substr($test, $idx, 1);
+                       if ((!in_array($check, $VALID_EMAIL_CHARS)) && ($check != "@"))
+                       {
+                               // Char found so end here again
+                               break;
+                       }
+                       $idx++;
+               }
+               if ($idx > 0)
+               {
+                       // Maybe this is the email address?
+                       $check = substr($test, 0, $idx);
+               }
+
+               // Now replace the email against anchor with mailto and pray...
+               $PARTS[] = $check2."<A href=\"mailto:".$check."\">".$check."</A>";
+
+               // Remove email from testing string (see above why...)
+               $test = substr($test, strlen($check));
+       }
+       // Now put all parts together
+       $text = ""; $PARTS[] = $test;
+       foreach ($PARTS as $part)
+       {
+               $text .= $part;
+       }
+
+       // Replace new-lines agains <BR>-s and finally compile possible own HTML tags out...
+       return COMPILE_CODE(str_replace("\n", "<BR>\n", $text));
+}
+//
+function SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM)
+{
+       if (EXT_IS_ACTIVE("html_mail"))
+       {
+               // Send mail away as HTML
+               $FROM = "Content-Type: text/html\n".$FROM;
+               SEND_EMAIL($TO, $SUBJECT, $MSG, "N", $FROM);
+       }
+}
+//
+?>