Saturday, October 29, 2011

PHP: Search URL in a string

When found an URL beginning with http://, add anchor tag to it.
 
Code:
<?php
$str = "bla http://www.example.com bla bla http://www.example.net bla bla";

$m = preg_match_all('/http:\/\/[a-z0-9A-Z.]+(?(?=[\/])(.*))/', $str, $match);

if ($m) {
 $links = $match[0];
 for ($j = 0; $j < $m; $j++) {
  $str = str_replace($links[$j],
  '<a href="'.$links[$j].'">'.$links[$j].'</a>',
  $str);
 }
}

echo "Content: ".$str; 
?>

Output:

Content: bla http://www.example.com bla bla http://www.example.net bla bla


Refer:
http://php.net/manual/en/function.preg-match-all.php
http://php.net/manual/en/function.preg-match.php

Other regex expressions to match URL format:
@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@
Refer: http://stackoverflow.com/questions/16113652/using-phps-preg-match-all-to-extract-a-url

14 comments:

  1. Cuando se creó el Sistema de Nombres de Dominio en los años 80, el espacio de nombres se dividió en dos grandes grupos. El primero incluye los dominios, basados en los dos caracteres de identificación de cada territorio de acuerdo a las abreviaciones del ISO-3166 (Dominio de nivel superior de código de país).
    vumoo

    ReplyDelete
  2. Thanks for this such an excellent post! Keep up! rangextd reviews

    ReplyDelete