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