2017-06-02 66 views
-1

我有一個來自用戶輸入的文本。在文本中包含所有類型的電子郵件和鏈接以「http/https/www」開頭。 例如:我有一個像下面的文字。自動使電子郵件鏈接,URL鏈接在一個靜態文本

Lorem ipsum dolor [email protected] sit amet https://foo.com/path?query=string 
Lorem ipsum foo.com www.foo.com Lorem ipsum dolor 

執行的輸出是。

Lorem ipsum dolor <a href="mailto:[email protected]>[email protected]</a> sit amet <a href="https://foo.com/path?query=string">https://foo.com/path?query=string</a> 
Lorem ipsum <a href="foo.com">foo.com</a> <a href="www.foo.com">www.foo.com</a> Lorem ipsum dolor 
+0

這將是馬麗娟,如果我可以用PHP來解決這個問題,否則我將使用[這個JavaScript庫(https://開頭alexcorvi.github.io/anchorme.js/)作爲最後的手段 –

+0

我編輯的解決方案:) – TheDarkKnight

+0

[轉換純文本的URL到PHP HTML鏈接]可能的複製(https://stackoverflow.com/questions/ 1960461/convert-plain-text-url-into-html-hyperlinks-in-php) – 2017-06-02 12:51:48

回答

2

試試這個代碼,請參閱本demo

<?php 
$linkArray = ['Lorem ipsum dolor sit amet','[email protected]','google.com','https://www.google.com']; 
foreach($linkArray as $link){ 
    if(preg_match('/((https:\/\/)?([A-z][email protected])?([A-z]+)?\.([A-z]+)?)/',$link,$match)){ 
     if(preg_match('/(@)/',$link,$m)){ 
      echo '<a href="mailto:'.$match[1].'">'.$match[1].'</a><br>';  
     }else{ 
      echo '<a href="'.$match[1].'">'.$match[1].'</a><br>'; 
     } 
    }else{ 
     echo $link.'<br>'; 
    } 
} 
?> 
+0

嗨,謝謝你的回答, 所以我需要爆炸文本b y空間來獲得$ linkArray,對吧? '$ linkArray =爆炸(」」,$文本)' –

+0

沒有將無法工作我想,你可以從'/ N'陣列。你從哪裏得到那個字符串? – Webinion

+0

從哪裏得到那個字符串? <<用戶輸入。 所以我想要一個函數來處理所有類型的字符串,包括任何電子郵件或任何網址。 –

相關問題