New Package: Clickable URLs and Email Addresses in PHP

Last night I refactored a few functions I had put together into a package to convert all URLs, email addresses and FTP addresses in a block of text into clickable HTML anchors. I use it on my microblog when posting - since my posts are automatically reposted to Twitter, which marks up links accordingly, I want to avoid using Markdown for clickable URLs etc.

The package can be installed using Composer:

composer require theprivateer/clickable

To use it, it's just a matter of passing a string to the static parse method on the class:

require_once 'path/to/composer/autoload.php';

echo \Privateer\Clickable\Clickable::parse('Read my blog at https://philstephens.com');

// Read my blog at <a href="https://philstephens.com" rel="nofollow">https://philstephens.com</a>

Alternatively you can use the str_clickable helper function (also autoloaded by Composer):

require_once 'path/to/composer/autoload.php';

$str = 'Find out more at https://packagist.org/packages/theprivateer/clickable.';

echo str_clickable($str)

// Find out more at <a href="https://packagist.org/packages/theprivateer/clickable" rel="nofollow">https://packagist.org/packages/theprivateer/clickable</a>.

If you pass through a string that already has an anchor tag in it, fear not - the parser will automatically ignore them:

require_once 'path/to/composer/autoload.php';

$str = 'Find out more at <a href="https://packagist.org/packages/theprivateer/clickable" rel="nofollow">https://packagist.org/packages/theprivateer/clickable</a>.';

echo str_clickable($str)

// Find out more at <a href="https://packagist.org/packages/theprivateer/clickable" rel="nofollow">https://packagist.org/packages/theprivateer/clickable</a>.

I've still got some documenting to do and a simple test suite to write, but if you want to find out more check it out on Github.

Where do you go from here?

Follow via RSS or Email. Thoughts? Comments? Get in touch.

Next Article: Creating an embedded hashtag system in Laravel - Part 2