|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 00003 // This file is part of Moodle - http://moodle.org/ 00004 // 00005 // Moodle is free software: you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation, either version 3 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // Moodle is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 00017 00027 defined('MOODLE_INTERNAL') || die(); 00028 00033 class filter_emailprotect extends moodle_text_filter { 00034 function filter($text, array $options = array()) { 00036 if (strpos($text, '@') === false) { 00037 return $text; 00038 } 00039 00041 $matches = array(); 00042 00044 $emailregex = '((?:[\w\.\-])+\@(?:(?:[a-zA-Z\d\-])+\.)+(?:[a-zA-Z\d]{2,4}))'; 00045 00047 $pattern = '|(<a\s+href\s*=\s*[\'"]?mailto:)'.$emailregex.'([\'"]?\s*>)'.'(.*)'.'(</a>)|iU'; 00048 $text = preg_replace_callback($pattern, 'filter_emailprotect_alter_mailto', $text); 00049 00051 $pattern = '/(^|\s+|>)'.$emailregex.'($|\s+|\.\s+|\.$|<)/i'; 00052 $text = preg_replace_callback($pattern, 'filter_emailprotect_alter_email', $text); 00053 00054 return $text; 00055 } 00056 } 00057 00058 00059 function filter_emailprotect_alter_email($matches) { 00060 return $matches[1].obfuscate_text($matches[2]).$matches[3]; 00061 } 00062 00063 function filter_emailprotect_alter_mailto($matches) { 00064 return obfuscate_mailto($matches[2], $matches[4]); 00065 } 00066 00067