Как заменить email и ссылки в тексте?
Ответ
Полезно при фильтрации сообщений от пользователей. Бонус – заменим еще группы пробелов на одиночные.
1 2 3 |
$msg = preg_replace('/[^@\s]*@[^@\s]*\.[^@\s]*/', '[email]', $msg); $msg = preg_replace('/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i', '[ссылка]', $msg); $msg = preg_replace('/\s\s+/', ' ', $msg); |
Можно сделать одним вызовом:
1 2 3 |
$msg = preg_replace(['/[^@\s]*@[^@\s]*\.[^@\s]*/', '/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i', '/\s\s+/'],['[email]','[ссылка]',' '],$msg); |