-<?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);
+ }
+}
+//
+?>