1

というわけで、サイトに保存したツイートを出力する機能や、リンクしたい<?=stripslashes($row['tweet_text'])?>などの内容のツイートを出力する機能があります。@userでは、文字が見つかった場合、それ@に接続されているテキストをリンクに変換する方法を教えてください。www.twitter.com/user

したがって、次のようなテキストが見つかった場合は@username、リンクになります

<a href="http://www.twitter.com/username">@username</a>

4

3 に答える 3

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']))?>
于 2012-09-18T03:33:10.480 に答える
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_ があるものはすべてリンクに変更されます ...

于 2012-09-18T03:35:30.350 に答える
0

preg_match_allユーザー名に空白が含まれていないと仮定して、ユーザー名を取得するためにa を実行できると思います。

$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'])) 
于 2012-09-18T03:39:11.687 に答える