Replacing URLs with Links : preg_replace « String « PHP






Replacing URLs with Links

 
<?php

    $hostRegex = "([a-z\d][-a-z\d]*[a-z\d]\.)*[a-z][-a-z\d]*[a-z]";
    $portRegex = "(:\d{1,})?";
    $pathRegex = "(\/[^?<>#\"\s]+)?";
    $queryRegex = "(\?[^<>#\"\s]+)?";

    $urlRegex = "/(?:(?<=^)|(?<=\s))((ht|f)tps?:\/\/" . $hostRegex . $portRegex . $pathRegex . $queryRegex . ")/";

    $str = "http://home.example.com.";
    $str2 = "http://home.example.com:8181/index.php";

    echo $urlRegex . "\n";

    $sample1 = preg_replace($urlRegex, "<a href=\"\\1\">\\1</a>", $str);
    $sample2 = preg_replace($urlRegex, "<a href=\"\\1\">\\1</a>", $str2);

    echo $sample1 . "\n";

    echo $sample2 . "\n";

?
  
  








Related examples in the same category

1.$0 is set to the whole match, then $1, $2
2.Converting Line Breaks
3.preg_replace
4.preg_replace
5.preg_replace with index
6.Pass a fourth parameter to preg_replace( ) to specify the maximum number of replacements you want to make.
7.Pass arrays of regular expressions and replacement strings to preg_replace().
8.Replacing with preg_replace()
9.Using Back References with preg_replace()
10.Using preg_replace() to Replace Patterns
11.e modifier treats the replacement string in preg_replace() as if it were PHP.
12.pass arrays as parameter one and parameter two, and preg_replace() performs multiple replaces
13.Escape a > character in HTML
14.Formatting a Phone Number
15.Entity encoding matched text
16.Escaping Special Characters
17.Regular Expression Replacements
18.Remove any doubled-up whitespace
19.Replace any non-space whitespace, with a space
20.Replace with regular expression
21.Replacing using backreferences
22.Quote escaping in backreference replacements