所以我有一个功能可以在我的网站<?=stripslashes($row['tweet_text'])?>
输出已保存的推文。对于包含@user
内容的推文,我想要链接。那么,如果它找到字母@
,那么如何将它与连接到它的文本转换为可以转到www.twitter.com/user
的链接
因此,如果找到@username
之类的文字,则会将其设为链接
<a href="http://www.twitter.com/username">@username</a>
答案 0 :(得分:3)
<?= preg_replace('/@(\w+)/', '<a href="https://www.twitter.com/$1">@$1</a>', stripslashes($row['tweet_text']))?>
对于哈希标记:
<?= preg_replace('/#(\w+)/', '<a href="https://twitter.com/#!/search/$#$1">#$1</a>', stripslashes($row['tweet_text']))?>
答案 1 :(得分:1)
这是你想要的:
<?php
$text = 'asd asd asd asd as @user aasda sad asd @yyy sd';
$text = preg_replace('/(.*?)\@([A-Za-z0-9_]+)(.*?)/', '$1<a href="http://www.twitter.com/$2">@$2</a>$3', $text);
?>
任何有@ + A-Za-z0-9_的内容都会更改为链接...
答案 2 :(得分:0)
我猜您可以使用preg_match_all
来获取用户名,假设用户名不包含任何空格:
$usernames = preg_match_all( "|\@(.*) |" , stripslashes($row['tweet_text']) , $match );
$usernames = $match[0];
//loop through usernames and do whatever (replace, get data, etc etc)
如果您只想用http://twitter.com/username
替换所有用户名,请在输出中使用preg_replace
:
preg_replace('|\@(.*)|', '<a href="http://www.twitter.com/$1">@$1</a>', stripslashes($row['tweet_text']))