<code
class
=
" language-php"
><span
class
=
"token keyword"
>
function
</span> _make_url_clickable_cb<span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>{</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token string"
>
''
</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$url
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>2</span><span
class
=
"token punctuation"
>]</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token keyword"
>
if
</span> <span
class
=
"token punctuation"
>(</span> <span
class
=
"token function"
>
empty
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$url
</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>)</span>
<span
class
=
"token keyword"
>
return
</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>0</span><span
class
=
"token punctuation"
>]</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token comment"
>
</span> <span
class
=
"token keyword"
>
if
</span> <span
class
=
"token punctuation"
>(</span> in_array<span
class
=
"token punctuation"
>(</span><span
class
=
"token function"
>
substr
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$url
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token operator"
>-</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token keyword"
>
array
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token string"
>
'.'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
','
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
';'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
':'
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token operator"
>==</span><span
class
=
"token operator"
>=</span> <span
class
=
"token boolean"
>true</span> <span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>{</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token function"
>
substr
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$url
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token operator"
>-</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$url
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token function"
>
substr
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$url
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token number"
>0</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token function"
>
strlen
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$url
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token operator"
>-</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token punctuation"
>}</span>
<span
class
=
"token keyword"
>
return
</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>]</span> <span
class
=
"token punctuation"
>.</span> <span
class
=
"token string"
>
"<a href=\"</span><span class="
token variable
">$url</span>\<span class="
token string
">"
rel=\
"nofollow\"</span><span class="
token operator
">></span><span class="
token variable
">$url</span><span class="
token operator
"><</span><span class="
token operator
">/</span>a<span class="
token operator
">></span>"
<span
class
=
"token punctuation"
>.</span> <span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token punctuation"
>}</span>
<span
class
=
"token keyword"
>
function
</span> _make_web_ftp_clickable_cb<span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>{</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token string"
>
''
</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$dest
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>2</span><span
class
=
"token punctuation"
>]</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$dest
</span> <span
class
=
"token operator"
>=</span>
'http<span class="token punctuation">:</span><span class="token comment">//'
.
$dest
;
</span>
<span
class
=
"token keyword"
>
if
</span> <span
class
=
"token punctuation"
>(</span> <span
class
=
"token function"
>
empty
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$dest
</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>)</span>
<span
class
=
"token keyword"
>
return
</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>0</span><span
class
=
"token punctuation"
>]</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token keyword"
>
if
</span> <span
class
=
"token punctuation"
>(</span> in_array<span
class
=
"token punctuation"
>(</span><span
class
=
"token function"
>
substr
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$dest
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token operator"
>-</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token keyword"
>
array
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token string"
>
'.'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
','
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
';'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
':'
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token operator"
>==</span><span
class
=
"token operator"
>=</span> <span
class
=
"token boolean"
>true</span> <span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>{</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token function"
>
substr
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$dest
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token operator"
>-</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$dest
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token function"
>
substr
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$dest
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token number"
>0</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token function"
>
strlen
</span><span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$dest
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token operator"
>-</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token punctuation"
>}</span>
<span
class
=
"token keyword"
>
return
</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>]</span> <span
class
=
"token punctuation"
>.</span> <span
class
=
"token string"
>
"<a href=\"</span><span class="
token variable
">$dest</span>\<span class="
token string
">"
rel=\
"nofollow\"</span><span class="
token operator
">></span><span class="
token variable
">$dest</span><span class="
token operator
"><</span><span class="
token operator
">/</span>a<span class="
token operator
">></span>"
<span
class
=
"token punctuation"
>.</span> <span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token punctuation"
>}</span>
<span
class
=
"token keyword"
>
function
</span> _make_email_clickable_cb<span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>{</span>
<span
class
=
"token variable"
>
$email
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>2</span><span
class
=
"token punctuation"
>]</span> <span
class
=
"token punctuation"
>.</span> <span
class
=
"token string"
>
'@'
</span> <span
class
=
"token punctuation"
>.</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>3</span><span
class
=
"token punctuation"
>]</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token keyword"
>
return
</span> <span
class
=
"token variable"
>
$matches
</span><span
class
=
"token punctuation"
>[</span><span
class
=
"token number"
>1</span><span
class
=
"token punctuation"
>]</span> <span
class
=
"token punctuation"
>.</span> <span
class
=
"token string"
>
"<a href=\"</span>mailto<span class="
token punctuation
">:</span><span class="
token variable
">$email</span>\"<span class="
token operator
">></span><span class="
token variable
">$email</span><span class="
token operator
"><</span><span class="
token operator
">/</span>a<span class="
token operator
">></span>"
<span
class
=
"token punctuation"
>;</span>
<span
class
=
"token punctuation"
>}</span>
<span
class
=
"token keyword"
>
function
</span> make_clickable<span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>)</span> <span
class
=
"token punctuation"
>{</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> <span
class
=
"token string"
>
' '
</span> <span
class
=
"token punctuation"
>.</span> <span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> preg_replace_callback<span
class
=
"token punctuation"
>(</span>
'#<span class="token punctuation">(</span><span class="token punctuation">[</span>\s<span class="token operator">></span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">[</span>\w<span class="token punctuation">]</span><span class="token operator">+</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token comment">//[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is'
,
'_make_url_clickable_cb'
,
$ret
);
</span> <span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> preg_replace_callback<span
class
=
"token punctuation"
>(</span><span
class
=
"token string"
>
'#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
'_make_web_ftp_clickable_cb'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> preg_replace_callback<span
class
=
"token punctuation"
>(</span><span
class
=
"token string"
>
'#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token string"
>
'_make_email_clickable_cb'
</span><span
class
=
"token punctuation"
>,</span> <span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> preg_replace<span
class
=
"token punctuation"
>(</span>
"#<span class="
token punctuation
">(</span><span class="
token operator
"><</span>a<span class="
token punctuation
">(</span> <span class="
token punctuation
">[</span>^<span class="
token operator
">></span><span class="
token punctuation
">]</span><span class="
token operator
">+</span><span class="
token deliminator
">?></span><span class="
token operator
">|</span><span class="
token operator
">></span><span class="
token punctuation
">)</span><span class="
token punctuation
">)</span><span class="
token operator
"><</span>a <span class="
token punctuation
">[</span>^<span class="
token operator
">></span><span class="
token punctuation
">]</span><span class="
token operator
">+</span><span class="
token deliminator
">?></span><span class="
token punctuation
">(</span><span class="
token punctuation
">[</span>^<span class="
token operator
">></span><span class="
token punctuation
">]</span><span class="
token operator
">+</span><span class="
token operator
">?</span><span class="
token punctuation
">)</span><span class="
token operator
"><</span><span class="
token operator
">/</span>a<span class="
token operator
">></span><span class="
token operator
"><</span><span class="
token operator
">/</span>a<span class="
token operator
">></span>#i<span class="
token string
">"
,
"</span><span class="
token variable
">$1</span><span class="
token variable
">$3</span><span class="
token operator
"><</span><span class="
token operator
">/</span>a<span class="
token operator
">></span>"
<span
class
=
"token punctuation"
>,</span> <span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token variable"
>
$ret
</span> <span
class
=
"token operator"
>=</span> trim<span
class
=
"token punctuation"
>(</span><span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>)</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token keyword"
>
return
</span> <span
class
=
"token variable"
>
$ret
</span><span
class
=
"token punctuation"
>;</span>
<span
class
=
"token punctuation"
>}</span></code>