make_clickable [ WordPress Function ]
make_clickable ( $text )
| Parameters: |
|
| Returns: |
|
| Defined at: |
|
Soorgelijke functies: _make_url_clickable_cb, _make_email_clickable_cb, _make_web_ftp_clickable_cb, get_locale, maybe_create_table
Convert plaintext URI to HTML links.
Converts URI, www and ftp, and email addresses. Finishes by fixing links within links.
Source
<?php
function make_clickable( $text ) {
$r = '';
$textarr = preg_split( '/(<[^<>]+>)/', $text, -1, PREG_SPLIT_DELIM_CAPTURE ); // split out HTML tags
foreach ( $textarr as $piece ) {
if ( empty( $piece ) || ( $piece[0] == '<' && ! preg_match('|^<\s*[\w]{1,20}+://|', $piece) ) ) {
$r .= $piece;
continue;
}
// Long strings might contain expensive edge cases ...
if ( 10000 < strlen( $piece ) ) {
// ... break it up
foreach ( _split_str_by_whitespace( $piece, 2100 ) as $chunk ) { // 2100: Extra room for scheme and leading and trailing paretheses
if ( 2101 < strlen( $chunk ) ) {
$r .= $chunk; // Too big, no whitespace: bail.
} else {
$r .= make_clickable( $chunk );
}
}
} else {
$ret = " $piece "; // Pad with whitespace to simplify the regexes
$url_clickable = '~
([\\s(<.,;:!?]) # 1: Leading whitespace, or punctuation
( # 2: URL
[\\w]{1,20}+:// # Scheme and hier-part prefix
(?=\S{1,2000}\s) # Limit to URLs less than about 2000 characters long
[\\w\\x80-\\xff#%\\~/@\\[\\]*(+=&$-]*+ # Non-punctuation URL character
(?: # Unroll the Loop: Only allow puctuation URL character if followed by a non-punctuation URL character
[\'.,;:!?)] # Punctuation URL character
[\\w\\x80-\\xff#%\\~/@\\[\\]*(+=&$-]++ # Non-punctuation URL character
)*
)
(\)?) # 3: Trailing closing parenthesis (for parethesis balancing post processing)
~xS'; // The regex is a non-anchored pattern and does not have a single fixed starting character.
// Tell PCRE to spend more time optimizing since, when used on a page load, it will probably be used several times.
$ret = preg_replace_callback( $url_clickable, '_make_url_clickable_cb', $ret );
$ret = preg_replace_callback( '#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]+)#is', '_make_web_ftp_clickable_cb', $ret );
$ret = preg_replace_callback( '#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret );
$ret = substr( $ret, 1, -1 ); // Remove our whitespace padding.
$r .= $ret;
}
}
// Cleanup of accidental links within links
$r = preg_replace( '#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i', "$1$3</a>", $r );
return $r;
}
?>
Examples [ wp-snippets.com ]
Top Google zoekresultaten
- Function Reference/make clickable « WordPress Codex
Description. Convert plain text URI to HTML links. Converts URI, www, ftp, and email addresses. Finishes by fixing links within links.
codex.wordpress.org - PHP make_clickable | Gilbert Pellegrom
Apr 27, 2012 ... PHP make_clickable. So you have string that contains URL's and you want to make them “clickable”. This is simple and it works: function ...
gilbert.pellegrom.me - phpBB • View topic - Cannot redeclare make_clickable() phpbb ...
Jul 17, 2009 ... Code: Select all: Fatal error: Cannot redeclare make_clickable() (previously declared ... tumba25 wrote: make_clickable() is a phpBB function.
www.phpbb.com - using wordpress function make_clickable() to convert urls in a string ...
using wordpress function make_clickable() to convert urls in a string into ... "<a href=\"mailto:$email\">$email</a>"; } function make_clickable($ret) { $ret = ' ' .
forrst.com
Gebruikersdiscussies [ wordpress.org ]
- TobiasBg on "[Plugin: WP-Table] Make_clickable links within table"
- Tomassey on "[Plugin: WP-Table] Make_clickable links within table"
- Tomassey on "[Plugin: WP-Table] Make_clickable links within table"
- letter7 on "links in users comments arn't hyperlinking with wordpress theme jumping_ski"
- Kafkaesqui on "Shouldn't make_clickable use double quotes?"
- wvanderdeijl on "Shouldn't make_clickable use double quotes?"