0

我有一个看起来像这样的字符串

<a href="/team.php?team_id=521">@Arsenal Fc</a> and <a href="/profile.php?fid=50683">@Tester Alpha</a>

我需要将其转换为

'#ArsenalFc 和测试员 Alpha'

要记住三件事。

1) 对于到 team.php 页面的链接,@ 转换为 #

2) 对于到 team.php 页面的链接,字符串空格被删除(Arsenal Fc 到 ArsenalFc)

3) 对于 profile.php 页面的链接,@ 被删除

有什么想法可以简单地做到这一点吗?

4

1 回答 1

1

这对我有用

function myPregCallback($res)
{
    return '#'.str_replace(' ','',$res[1]);
}
$str = '<a href="/team.php?team_id=521">@Arsenal Fc</a> and <a href="/profile.php?fid=50683">@Tester Alpha</a>';
$newStr = preg_replace_callback('#^.+"/team\.php[^>]+>@?([^<]+)</a>#','myPregCallback',$str);
$newStr = preg_replace('#<a.+?"/profile\.php.+?>@?([^<]+)</a>#','$1',$newStr);
var_dump($newStr); //string(27) "#ArsenalFc and Tester Alpha" 

如果不需要对“team.php”和“profile.php”进行显式检查,这当然会更简单。

于 2013-08-02T14:11:38.813 回答