在Facebook或Twitter上说,当我输入“www.google.com”并提交时,它就会成为一个链接。我如何用PHP编写代码?我是否使用正则表达式来获取www开始和.com结束的位置?
这是他们这样做的吗?
<?PHP
//some regular expression to get www and .com part
$link="<a href='$url'>$url</a>";
echo $link;
?>
如何编写正则表达式以获取“www”和“.com”部分?
对于Twitter的@obama,奥巴马将成为奥巴马网站的链接。 他们使用什么正则表达式来获取@之后和空格之前的文本?
答案 0 :(得分:7)
<?php
$str = "Lorem http://myyn.org dolor sit amet, http://google.com adipisicing ..";
$str = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is",
"\\1<a href=\"\\2\">\\2</a>",
$str);
echo $str . "\n";
?>
示例:
$ php 2935574.php
Lorem <a href="http://myyn.org">http://myyn.org</a> dolor sit amet, \
<a href="http://google.com">http://google.com</a> adipisicing elit.
答案 1 :(得分:3)
对于Twitter,您可以使用类似的东西。
$str = "@obama This is a test";
$str = preg_replace('/@([\w-]+)/', '@<a href="http://twitter.com/\\1">\\1</a>', $str);
echo $str; // @<a href="http://twitter.com/obama">obama</a> this is a test