Previous Article

PHP function to find links in a string

Next Article

This handy little function searches a string for urls and converts them into anchor tags. This is particularly useful for tweets pulled from Twitter using the API. This is used to prepare the links in my Twitter feed at the bottom of my site.

function make_links($str) {
    $reg_ex_url = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
    $urls = array();
    $urls_to_replace = array();

    if (preg_match_all($reg_ex_url, $str, $urls)) {
        $numOfMatches = count($urls[0]);
        $url_count = 0;

        for ($i=0; $i<$numOfMatches; $i++) {
            $alreadyAdded = false;
            $url_count = count($urls_to_replace);

            for ($j=0; $j<$url_count; $j++) {
                if ($urls_to_replace[$j] == $urls[0][$i]) {
                    $alreadyAdded = true;
                }
            }

            if (!$alreadyAdded) {
                array_push($urls_to_replace, $urls[0][$i]);
            }
        }

        $url_count = count($urls_to_replace);

        for ($i=0; $i<$url_count; $i++) {
            $str = str_replace($urls_to_replace[$i], &quot;<a _blank="" href="\" target="\">&quot;.$urls_to_replace[$i].&quot;</a> &quot;, $str);
        }

        return $str;
    } else {
        return $str;
    }
}
Avatar of Clive Walkden

Clive Walkden

Posted:

Latest Articles

Linux command line tools, installations etc

Linux

How to Install NordLayer VPN Client on Ubuntu 20.04 and Connect to a Virtual Network

A simple to follow installation guide for NordLayer VPN

MySQL usage, tweaks and learnings

MySQL

Mastering MySQL Database Imports on Linux

Learn efficient ways to import MySQL databases on Linux using the mysql command-line client. Explore the --source option and < operator for seamless data migration. Master MySQL imports on Linux with our comprehensive guide.

DevOps principles and tool usage

DevOps

Mastering SSH Key Conversions for DevOps

A guide to convert SSH keys from one version to another using Linux CLI