【发布时间】:2014-10-02 17:09:11
【问题描述】:
所以我尝试将 url(如 www.google.com)替换为 html 链接标记,如下所示
return preg_replace('"\b(www.\S+)"', '<a href="$1" style="color:white;">$1</a>', $url);
这是从其他地方修改的 preg_replace ,我仍然不完全理解它是如何工作的......
所以如果我使用这个我会得到
<a href"www.google.com" style="color:white;">www.google.com</a>
这意味着它将在我的网络目录中查找 www.google.com,而不是打开 www.google.com 网站
我想要实现的是
<a href"http://www.google.com" style="color:white;">google</a>
那么如何实现这样的目标呢?如果我输入时会更好
http://www.google.com
那么它也将替换
http://www.
太…… 如果我的当前配置只是替换 www。但如果我输入 http:// 那么它只会从 www.google.com 扭曲并离开 http://
编辑: 所以我想要一个灵活的,所以如果我输入 www.google.com 或http://www.google.com 它会抓住它并将它变成链接标签.... 而且如果我输入像https://stackoverflow.com/posts/26154124/ 它只会显示像
<a href"https://stackoverflow.com/posts/26154124/" style="color:white;">stackoverflow</a>
第二次编辑:对不起,我忘了说我还想在链接中保留其他文本..所以就像我在输入“这是 www.xxxxx.com 中的大新闻”以及何时我显示它/它将是“这里是 xxxxx 的大新闻”,其中 xxxxx 将是可点击的链接... 我尝试这样做是因为我要将它用于我的网站公告部分......
我们可以这样做吗?
更新:
我有一些想法,首先我们做 preg_replace 来捕获 http:// 并删除它,然后我们捕获 www。将其变形为 html 链接标签并捕获 www。以及 .com/.co/或 .whatever 之后的所有内容并将其全部删除,直到下一个空格
但我不知道如何使用 preg_replace,因为我不知道它是如何工作的
【问题讨论】:
-
你的意思是
<a href=否则,它不会是一个有效的href。 -
我们需要看看你使用的是什么
$url。是“谷歌”吗?是“www.google.com”吗?其他? -
我希望它灵活,所以如果 $url = www.google.com 或 $url = google.com 它只会给出与 google.com >google 相同的输出一个>
-
看看我在下面发布的内容。这是一种方法。