gpt4 book ai didi

php - 将字符串 url 转换为 html 链接标签

转载 作者:行者123 更新时间:2023-11-29 07:52:03 26 4
gpt4 key购买 nike

所以我尝试将 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/or .whatever 之后的所有内容,并将其全部删除,直到下一个空格

但我不知道如何使用 preg_replace 因为我不知道它是如何工作的

最佳答案

为了实现您想要实现的目标,这大约是我能想到的最接近的结果。

我确信还有其他方法,但您可以尝试以下方法。

文本文件中可以包含以下内容:(可以包含 1 行或多行)

bookmark.txt(按照显示的确切格式)- 您无需输入 http://,它是自动的。

旁注:您可以使用 google.comwww.google.com - 仅单词 Google 将显示为链接,但完整的 href 将显示在 HTML 源代码中并且是有效的 URL。

Google google.comYahoo yahoo.comstackoverflow stackoverflow.com/posts/26154124

Then use the following PHP:

<?php 
$file = "bookmark.txt";
$lines = file($file);
foreach($lines as $line)
{
$piece=explode(" ",$line);
$link=trim($piece[1]);
$text=trim($piece[0]);
echo '<a href="http://'.$link.'">'.$text.'</a><br>';
}

注释:$piece=explode("",$line);中的""代表空格作为分隔符。

您可以将其更改为 $piece=explode("|",$line); 然后将文本文件更改为:

Google|google.comYahoo|yahoo.comstackoverflow|stackoverflow.com/posts/26154124

should you decide to use something like Google Search

I.e.:

Google Search|google.comYahoo|yahoo.comstackoverflow link|stackoverflow.com/posts/26154124

You can also try:

$content = "http://stackoverflow.com/posts/26154124";
$content = preg_replace('$(https?://[a-z0-9_./?=&#-]+)(?![^<>]*>)$i', ' <a href="$1" target="_blank">StackOverflow</a> ', $content." ");

echo $content;
<小时/>

但是在这一点上,一遍又一遍地阅读你的问题,包括你的编辑,我不完全确定这就是你想要的,并且它非常广泛,超出了我对 PHP 的知识范围。

关于php - 将字符串 url 转换为 html 链接标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26154124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com