6146ec8e |
1 | <?php |
2 | |
a7de4ef7 |
3 | // renvoie un texte html à partir d'un texte classique |
4 | // en remplacant les url par des liens (éventuellement les mails) |
6146ec8e |
5 | function url_catcher($texte, $mails = true) { |
21a41057 |
6 | $patterns = array(); |
7 | $replacement = array(); |
8 | |
9 | // url commencant par http, https ou ftp |
a14159bf |
10 | $patterns[] = '/((?:https?|ftp):\/\/(?:\.*,*[\w@~%$£µ&i#\-+=_\/\?;])*)/ui'; |
21a41057 |
11 | $replacement[] = '<a href="\\0">\\0</a>'; |
12 | |
13 | // url commencant par www. |
a14159bf |
14 | $patterns[] = '/(\s|^)www\.((?:\.*,*[\w@~%$£µ&i#\-+=_\/\?;])*)/iu'; |
21a41057 |
15 | $replacement[] = '\\1<a href="http://www.\\2">www.\\2</a>'; |
16 | |
17 | if ($mails) { |
6146ec8e |
18 | $patterns[] = '/(?:mailto:)?([a-z0-9.\-+_]+@([\-.+_]?[a-z0-9])+)/i'; |
19 | $replacement[] = '<a href="mailto:\\0">\\0</a>'; |
21a41057 |
20 | } |
21 | |
6146ec8e |
22 | return preg_replace($patterns, $replacement, $texte); |
23 | } |
a7de4ef7 |
24 | // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: |
6146ec8e |
25 | ?> |