所以我试图将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://
编辑: 所以我想要一个flexibel,所以如果我输入www.google.com或http://www.google.com它会抓住它并将其变成链接标签.... 如果我输入https://stackoverflow.com/posts/26154124/,它也只会显示
<a href"https://stackoverflow.com/posts/26154124/" style="color:white;">stackoverflow</a>
第2次编辑:对不起,我忘了说我还想在链接中保留其他文字..所以这就像我打字&#34;这是www.xxxxx的重大新闻.COM&#34;当我显示它/它将是&#34;这是xxxxx中的一个重大新闻&#34;其中xxxxx将是可点击链接... 我试图这样做是因为我会将它用于我的网站公告部分...
我们可以这样做吗?更新
我想到了一些想法,首先我们做preg_replace来捕获http://然后删除它,然后我们抓住www。将其变为html链接标记并捕获www。和.com / .co /或.whatever之后的所有内容都要删除所有内容直到下一个空格
但我不知道如何使用preg_replace,因为我不知道它是如何工作的
答案 0 :(得分:2)
这是我能想到的最接近的,为了做你想做的事。
我确信还有其他方法,但您可以尝试以下方法。
您可以在文本文件中包含以下内容:(您可以拥有1行或更多行)
bookmark.txt (按照所示的确切格式) - 您无需自动放置http://
。
旁注: 您可以使用google.com
或www.google.com
- 只有单词Google
会显示为链接,但是完整的href
将出现在HTML源代码中,并且是有效的网址。
Google google.com Yahoo yahoo.com stackoverflow stackoverflow.com/posts/26154124
然后使用以下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.com Yahoo|yahoo.com stackoverflow|stackoverflow.com/posts/26154124
您是否应该决定使用Google Search
即:
Google Search|google.com Yahoo|yahoo.com stackoverflow link|stackoverflow.com/posts/26154124
您还可以尝试:
$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的知识范围。
答案 1 :(得分:0)
你是说这个?
$text = ' This is a text with the link of google.com. And another phrase with google.com url.';
echo str_replace('google.com','<a href="http://google.com" target=_blank>google</a>',$text);
答案 2 :(得分:0)
你总是对的,但只是一个简单的打字错误
<a href"http://stackoverflow.com/posts/26154124/" style="color:white;">stackoverflow</a>
你在href之后错过了'='等号。请试试这个
<a href="http://stackoverflow.com/posts/26154124/" style="color:white;">stackoverflow</a>
希望它有所帮助...