You are here

function spamspan_convertmailto in SpamSpan filter 5

2 calls to spamspan_convertmailto()
Main::testMailto in test/spamspan_test.inc
spamspan_filter in ./spamspan.module
Implementation of hook_filter().

File

./spamspan.module, line 166
This module implements the spamspan technique (http://www.spamspan.com ) for hiding email addresses from spambots. If javascript is disabled on the client-side, addresses appear as example [at] example [dot] com.

Code

function spamspan_convertmailto($string = '') {

  // does not presently work with URL parameters, eg
  // mailto:email@example.com?subject=subject
  define("REGEX", "!<a\\s+  # opening <a and spaces\n      (?:(?:\\w+\\s*=\\s*)(?:\\w+|\"[^\"]*\"|'[^']*'))*?      # any attributes\n      \\s*                                                 # whitespace\n      href\\s*=\\s*(['\"])mailto:(.+?)\\1                   # the href attribute, capturing the value\n      (?:(?:\\s+\\w+\\s*=\\s*)(?:\\w+|\"[^\"]*\"|'[^']*'))*?   # any more attributes\n      >                                                   # end of the first tag\n      .*?                                                 # tag contents.  NB this will not work properly if there\n                                                          # is a nested <a>, but this is not valid xhtml anyway\n      </a>                                                # closing tag\n      !ix");
  return preg_replace(REGEX, "\\2", $string);
}