【问题标题】:How do you obtain only the URL from data [duplicate]您如何仅从数据中获取 URL [重复]
【发布时间】:2013-07-13 17:59:48
【问题描述】:

我有一个小问题需要帮助。

如果 $post['text'] 等于这样的数据:“https://stackoverflow.com/blah?blah 是一个很酷的网站”,怎么可能只在类型标签中制作 URL 位...

所以最终的 HTML 结果将类似于

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

我有点菜鸟。我实际上是一个 14 岁的孩子,对代码还是有点陌生​​,但我喜欢它!

【问题讨论】:

  • 您想获取任意文本,在其中找到 URL,然后将其转换为 HTML 链接?
  • 请参阅htmlparsing.com/php,了解如何使用已经编写、测试和调试过的 PHP 模块正确解析 HTML。
  • + 对于一个如此年轻、渴望加入 StackOverflow 的成员。欢迎!
  • 太棒了!感谢人们的帮助。能够使用来自 stackoverflow.com/questions/1925455/… 的功能。然后在我的 $post['text'] 周围,添加 auto_link_text($post['text']) !干杯
  • 继续@user2579676 - 并注意布拉德如何礼貌地帮助您在现有问题/答案中找到答案。在你提问之前尽你最大的努力找到答案,但在你学会如何重新构建问题之前,这可能并不总是有效,这来自经验。询问何时需要,让老狗帮你找到正确的答案。

标签: php html tags variables


【解决方案1】:

您可以使用正则表达式。

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');

使用上述功能。它将用简单的 url 文本替换 URL。

【讨论】:

    【解决方案2】:
       <p> <a href="<?=$_POST['text']?>"> <?=$_POST['text']?> </a> is a cool website </p>
    

    【讨论】:

    • 是的,但是 var 中有其他文本。这不仅仅是链接。但是我已经找到了解决方法。不过感谢您的回复!
    猜你喜欢
    • 2020-06-11
    • 2014-01-12
    • 2022-01-18
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多