Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

PHP Autolink Library

A library to auto convert URLs to links.

Table of Content

Installation via Composer

Add this to composer.json require block.

{
    "require": {
        "asika/autolink": "1.*"
    }
}

Getting Started

This is a quick start to convert URL to link:

use Asika\Autolink\Linker;

$text = Linker::convert($text);
$text = Linker::convertEmail($text);

Use Autolink Object

Create the object:

use Asika\Autolink\Autolink;

$autolink = new Autolink;

Create with options.

$options = array(
    'strip_scheme' => false,
    'text_limit' => false,
    'auto_title' => false,
    'escape' => true,
    'link_no_scheme' => false
);

$schemes = array('http', 'https', 'skype', 'itunes');

$autolink = new Autolink($options, $schemes);

Convert Text

This is an example text:

This is Simple URL:
http://www.google.com.tw

This is SSL URL:
https://www.google.com.tw

This is URL with multi-level query:
http://example.com/?foo[1]=a&foo[2]=b

We convert all URLs.

$text = $autolink->convert($text);

Output:

This is Simple URL:
<a href="http://www.google.com.tw">http://www.google.com.tw</a>

This is SSL URL:
<a href="https://www.google.com.tw">https://www.google.com.tw</a>

This is URL with multi-level query:
<a href="http://example.com/?foo[1]=a&amp;foo[2]=b">http://example.com/?foo[1]=a&amp;foo[2]=b</a>

Add Attributes

$text = $autolink->convert($text, array('class' => 'center'));

All link will add this attributes:

This is Simple URL:
<a href="http://www.google.com.tw" class="center">http://www.google.com.tw</a>

This is SSL URL:
<a href="https://www.google.com.tw" class="center">https://www.google.com.tw</a>

Convert Email

Email url has no scheme, we use anoter method to convert them, and it will add mailto: at begin of href.

$text = $aurolink->convertEmail($text);

Output

<a href="mailto:foo@example.com">foo@example.com</a>

Options

text_limit

We can set this option by constructor or setter:

$auitolink->textLimit(50);

$text = $autolink->convert($text);

The link text will be:

http://campus.asukademy.com/learning/job/84-fin...

Use Your own limit handler by set a callback:

$auitolink->textLimit(function($url)
{
    return substr($url, 0, 50) . '...';
});

Or use \Asika\Autolink\LinkHelper::shorten() Pretty handler:

$auitolink->textLimit(function($url)
{
    return \Asika\Autolink\LinkHelper::shorten($url, 15, 6);
});

Output:

http://campus.asukademy.com/....../84-find-interns......

auto_title

Use AutoTitle to force add title on anchor element.

$autolink->autoTitle(true);

$text = $autolink->convert($text);

Output:

<a href="http://www.google.com.tw" title="http://www.google.com.tw">http://www.google.com.tw</a>

strip_scheme

Strip Scheme on link text:

$auitolink->stripScheme(true);

$text = $autolink->convert($text);

Output

<a href="http://www.google.com.tw" >www.google.com.tw</a>

escape

Strip Scheme on link text:

$auitolink->autoEscape(true);

$text = $autolink->convert($text);

Output

<a href="http://www.google.com.tw?foo=bar&yoo=baz" >http://www.google.com.tw?foo=bar&yoo=baz</a>

link_no_scheme

Convert URL which no scheme. If you pass TRUE to this option, Autolink will use http as default scheme, you can also provide your own default scheme.

$auitolink->linkNoScheme('https');

$text = $autolink->convert('www.google.com.tw');

Output

<a href="https://www.google.com.tw" >www.google.com.tw</a>

Scheme

You can add new scheme to convert URL begin with it, for example: vnc://example.com

$autolink->addScheme('skype')
    ->addScheme('vnc');

Default schemes is http, https, ftp, ftps.

Link Builder

If you don't want to use <a> element as your link, you can set a callback to build link HTML.

$autolink->setLinkBuilder(function($url, $attribs)
{
    $attribs['src'] = htmlspecialchars($url);

    return (string) new \Windwalker\Html\HtmlElement('img', null, $attribs);
});

See: Windwalker Dom Package

You can’t perform that action at this time.