eXorithm – Execute Algorithm: View / Run Algorithm markup_urls

Logo Beta

function markup_urls ($text

{

  // split the text into words

  $words = preg_split'/([snr]+)/'$text, -1, PREG_SPLIT_DELIM_CAPTURE);

  $text = ""

  

  // iterate through the words

  foreach$words as $word) {

    

    // chopword = the portion of the word that will be replaced

    $chopword = $word

    $chopword = preg_replace'/^[^A-Za-z0-9]*/'''$chopword);

    

    if ($chopword <> '') {

      // linkword = the text that will replace chopword in the word

      $linkword''

      

      // does it start with http://abc. ?

      if (preg_match'/^(http://)[a-zA-Z0-9_]{2,}.*/'$chopword)) {

        

        $chopword = preg_replace'/[^A-Za-z0-9/]*$/'''$chopword);

        $linkword = '<a href="'$chopword'" target="blank">'$chopword'</a>'

        

      // does it equal abc.def.ghi ?

      } else if (preg_match'/^[a-zA-Z]{2,}.([a-zA-Z0-9_]+.)+[a-zA-Z]{2,}(/.*)?/'$chopword)) {

        

        $chopword = preg_replace'/[^A-Za-z0-9/]*$/'''$chopword);

        $linkword = '<a href="http://'$chopword'" target="blank">'$chopword'</a>'

   

      // does it start with abc@def.ghi ?

      } else if (preg_match'/^[a-zA-Z0-9_.]+@([a-zA-Z0-9_]{2,}.)+[a-zA-Z]{2,}.*/'$chopword)) {

        

        $chopword = preg_replace'/[^A-Za-z0-9]*$/'''$chopword);

        $linkword = '<a href="mailto:'$chopword'">'$chopword'</a>'

        

      }

      

      // replace chopword with linkword in word (if linkword was set)

      if ($linkword <> '') {

        $word = str_replace$chopword$linkword$word);

      }

    }

    

    // append the word

    $text = $text$word

  }

  

  return $text