<style>
<!--

    #org {
        border-width: 1px;
        border-color: #808080;
        border-style: dotted;

        background-color: #efefef;
        padding: 10px;
        margin-bottom: 40px;
    }

    #after {
        border-width: 1px;
        border-color: #808080;
        border-style: dashed;

        background-color: #efefef;
        padding: 10px;
        margin-bottom: 40px;
    }
    
-->
</style>

<form method="post" action="<?=$PHP_SELF?>">
<textarea name='text' cols='40' rows='10'><?=$_POST[text]?></textarea>
<input type=submit>
</form>

<br><br><br>

<?PHP

    
function link_url$var ){

        
$t parse_url$var );

        
$url "{$t[scheme]}://";
        if( 
$t[user] ){

            
$url .= $t[user];
            if( 
$t[pass] )
                
$url .= ":{$t[pass]}";

            
$url .= "@";
            
        }
        
$url .= "{$t[host]}";
        
$ret "<a href='{$url}/'>$url</a>";

        
$full_url "";
        if( 
$t[path] ){
            
$full_url .= $t[path];
            if( 
$t[query] ){
                
$full_url .= "?{$t[query]}";
            }
            if( 
$t[fragment] ){
                
$full_url .= "#{$t[fragment]}";
            }
            
$ret .= "<a href='{$url}{$full_url}'>{$full_url}</a>";
            
        }
        return 
$ret;
        
    }

    function 
autolink$var ){

        
$var {$var}";
        
        
$pattern "/[[:space:]]+(http|ftp|mms):\/\/([^[:space:]]+)/e";
        
$var preg_replace$pattern"link_url( '\\1://\\2' )"$var );

        return 
$var;
    }
    if( 
$_POST[text] ){

        
$text autolink$_POST[text] );
        
        echo 
"<div id='org'>\n";
        echo 
"<H3>Original is</H3>";
        echo 
str_replace"\n""<br>\n"$_POST[text] );
        echo 
"</div>\n";

        echo 
"<div id='after'>\n";
        echo 
"<H3>After autolink...</H3>\n";
        echo 
str_replace"\n""<br>\n"$text );
        echo 
"</div>\n";
    }
        
    
show_source(__FILE__);

?>