簡體   English   中英

用PHP鏈接URL,修剪輸出的URL長度

[英]Linkify URLs with PHP, trim outputted urls length

我正在嘗試自動將文本格式設置為PHP中的鏈接,但將長URL修剪為最大字符數限制。 並從輸出的文本中刪除“ http(s)”。

blah blah http://example.com/some-long-slug-goes-here foo

應該翻譯為:

blah blah <a href="http://example.com/some-long-slug-goes-here">example.com/some-long-sl...</a> fooblah blah example.com/ some-long-sl ... foo

在這里找到了preg_replace解決方案: 如何使用php鏈接字符串中的URL? 但我無法根據自己的需要進行編輯。

$string = preg_replace(
  "~[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]~",
  "<a href=\"\\0\">\\0</a>", 
  $string
);

在協議之后創建捕獲組:

$string = preg_replace(
  "~[[:alpha:]]+://([^<>[:space:]]+[[:alnum:]/])~",
  "<a href=\"\\0\">\\1</a>", 
  $string
);

那么\\1將是沒有協議的URL。 對於文本限制,我建議使用CSS, 在css中設置最大字符長度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM