【问题标题】:Markup for turning URLs and Tags into anchors [closed]用于将 URL 和标签转换为锚点的标记 [关闭]
【发布时间】:2013-11-17 08:22:23
【问题描述】:

我如何打开一些这样的链接

http://someaddr.ess/linked [URL NAME]

进入

<a href="http://someaddr.ess/linked">URL NAME</a>

我正在寻找 PHP 或 jQuery 的解决方案。

*我在 stackoverflow 中没有找到专门针对此问题的解决方案。如果您已经知道一些答案,请链接到它。

【问题讨论】:

  • StackOverflow 的目的不是为您提供完整的解决方案,而是帮助您解决具体问题,帮助您找到自己的解决方案。这就是为什么您在搜索时没有找到任何东西的原因。但是,您应该看的是正则表达式,它可以让您自己轻松编写。

标签: javascript php regex hyperlink


【解决方案1】:

试试这个代码:

$a =  'http://someaddr.ess/linked [URL NAME]';
echo preg_replace('~(https?://\S+)\s*\[([^\]]+)\]~', '<a href="$1">$2</a>', $a);
//=> <a href="http://someaddr.ess/linked">URL NAME</a>

【讨论】:

  • +1 为你@anubhava...不错且简单的答案,而不是我
  • 感谢您的回答 +1,因为这也适用于一些额外的代码。
  • 谢谢你,阿努巴巴。你一如既往地乐于助人。 :) 您的代码立即生效。
  • @Imtiaz:不客气,很高兴它成功了。
【解决方案2】:

你可以试试这个,

<?php
    $input ="http://someaddr.ess/linked [URL NAME]";
    $input =str_replace("]", "", $input);
    list($url, $URLTEXT) =explode("[", $input);

    $URL = preg_replace('!(http|ftp|scp)(s)?:\/\/[a-zA-Z0-9.?&_/]+!', "<a href=\"\\0\">".$URLTEXT."</a>",$url);     

    echo $URL;
 ?>

【讨论】:

  • 谢谢。但它会将整个字符串变成链接。但仍然感谢您为我提供这个想法。
【解决方案3】:

试试看

$str = "http://someaddr.ess/linked [URL NAME]";
$new_arr = explode(' ',$str);

preg_match_all('/\[([A-Za-z]+?)\]/', $str, $text);
echo "<a href='".$new_arr[0]."'>".$text[0]."</a>";

【讨论】:

  • 谢谢你的回答,高塔姆。但是您的代码返回一个数组而不是一个字符串。我可能需要稍微修改一下。 :)
  • 查看我的编辑..希望它能做到这一点
  • @Gautam3164 只是为了让您知道您的链接仍然显示为Array
猜你喜欢
  • 1970-01-01
  • 2018-04-03
  • 2012-12-11
  • 1970-01-01
  • 2011-03-09
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
相关资源
最近更新 更多