Links und E-Mail Adressen klickbar machen
Mit einer einfachen Funktion kannst du die Links und E-Mail Adressen erkennen und zu anklickbaren Links umwandeln.
Du hast zum Beispiel einen langen Text, der Links und E-Mail Adressen beinhaltet. Diese werden beim Durchlaufen dieser genialen Funktion automatisch in anklickbare Texte verwandelt. Das kann man gut in Foren oder Gästebucheinträgen brauchen.
<?php function makeLink($string) { $string = str_replace("http://www.","www.", $string); $string = str_replace("www.","http://www.", $string); $string = preg_replace('/([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[\.a-zA-ZöÖüÜäÄ0-9-]+\.([a-zA-Z]{2,5}))/', 'mailto:$1', $string); $url_patterns = array( 'http' => "(?:https?://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))*)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))?)?)", 'ftp' => "(?:ftp://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*))?@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:;type=[AIDaid])?)?)", 'mailto' => "(?:mailto:(?:(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))+))" ); $pattern = '/(' . addcslashes($url_patterns['http'], chr(0x2F)) . '|' . addcslashes($url_patterns['ftp'], chr(0x2F)) . '|' . addcslashes($url_patterns['mailto'], chr(0x2F)) . ')/'; $string = preg_replace($pattern, "<a href=\"\\1\">\\1</a>", $string); return $string; } $text = "Das ist ein langer Text der mehrere Links http://google.com, www.google.com, eine FTP Adresse ftp://google.com und eine E-Mail Adresse name@googlemail.com enthält."; echo "<h3>Originaler Text:</h3><p>".$text."</p>"; echo "<hr />"; echo "<h3>Text mit klickbaren Links und E-Mail Adressen</h3><p>".makeLink($text)."</p>"; ?>
- Donnerstag, 23 Juni 2011
- Posted in: String Funktionen
Kommentare (0)