Мне нужно запутать адреса электронной почты, прежде чем они будут опубликованы на сайтах моих пользователей, чтобы спам-боты не могли их удалить. Однако некоторым пользователям нравится использовать ссылки mailto (вопреки моему совету, но они делают то, что хотят), и моя функция обфускации нарушает работу mailto. Поэтому я бы хотел, чтобы администраторы сайта могли обманывать некоторые адреса электронной почты, но не другие.
Я хочу использовать такой синтаксис:
"Some text, some more text, an [[email protected]], and more text."
Который будет выводить
"Some text, some more text, an emailaddress<span class='obfuscate' style='display:none;'>@</span>example.com, and more text."
Есть ли стандартный способ заставить PHP оценивать и обрабатывать только текст в квадратных скобках? Я видел аналогичные обозначения в коде WordPress, например,
[contact-form-7]
набирается в редакторе WYSIWYG и будет отображаться как полностью сформированная контактная форма для общественности. Так как я могу это сделать?
Я использовал это регулярное выражение: [[\ w.] + @ [\ W] +. [\ W] +], чтобы найти адреса электронной почты, заключенные в квадратные скобки, и заменил их запутанной строкой.
Других решений пока нет …