我有一个看起来像这样的字符串
<a href="/team.php?team_id=521">@Arsenal Fc</a> and <a href="/profile.php?fid=50683">@Tester Alpha</a>
我需要将其转换为
'#ArsenalFc和Tester Alpha'
要记住三件事。
1)对于team.php页面的链接,@被转换为#
2)对于team.php页面的链接,删除了字符串空格(Arsenal Fc to ArsenalFc)
3)对于profile.php页面的链接,@被删除
任何想法都表明要做到这一点吗?
答案 0 :(得分: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”,这当然会更简单。