2013-07-13 13 views
5

Ho un leggero problema con il quale ho bisogno di aiuto.Come si ottiene solo l'URL dai dati

dire se [ 'testo'] $ messaggio è stato pari a dati come: "https://stackoverflow.com/blah?blah è una tale sito web cool", come sarebbe possibile fare solo la punta URL in un tag di tipo ...

Quindi il risultato finale HTML sarebbe qualcosa come

<p><a href="https://stackoverflow.com/blah?blah">https://stackoverflow.com/blah?blah</a> is such a cool website</p> 

Sono un po 'un noob. Sono in realtà un ragazzino di 14 anni e sono ancora un po 'nuovo al codice, ma lo amo!

+0

Vuoi prendere un testo arbitrario, trovare gli URL al suo interno e trasformarli in link HTML? – Brad

+0

Vedere http://htmlparsing.com/php per esempi su come analizzare correttamente l'HTML con moduli PHP che sono già stati scritti, testati e corretti. –

+5

+ per un membro così giovane e desideroso che si unisce a StackOverflow. Benvenuto! –

risposta

3

È possibile utilizzare l'expersion regolare.

function make_hyperlink($text) 
{ 
    // match protocol://address/path/ 
    $text = preg_replace("{[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*}", "<a href=\"\\0\" target='_blank'>\\0</a>", $text); 

    // match www.something 
    $text = preg_replace("{(^|)(www([.]?[a-zA-Z0-9_/-])*)}", "\\1<a href=\"http://\\2\" target='_blank'>\\2</a>", $text); 

    // return $text 
    return $text; 
} 

echo make_hyperlink('http://stackoverflow.com/blah?blah'); 

Utilizzare la funzione sopra. Sostituirà l'URL da un semplice testo url.

1
<p> <a href="<?=$_POST['text']?>"> <?=$_POST['text']?> </a> is a cool website </p> 
+0

Sì ma il var ha altro testo al suo interno. Non è solo il collegamento. Ma ho già trovato una soluzione. Grazie per la tua risposta! – CALI1198

Problemi correlati