在我的PHP脚本中,我有一个如下变量:
$names = '<a href="%URL$%" rel="tag">Name Surname</a>, <a href="%URL$%" rel="tag">Name Surname</a>, <a href="%URL$%" rel="tag">Name Surname</a>';
是否可以过滤$ name以获得此结果?
$names = '<a href="%URL$%" rel="tag">N. Surname</a>, <a href="%URL$%" rel="tag">N. Surname</a>, <a href="%URL$%" rel="tag">N. Surname</a>';
答案 0 :(得分:0)
您可以使用preg_replace_callback
:
$names = preg_replace_callback(
'/(<a[^>]*>)(\w+)( \w+</a>)',
function($matches) {
return $matches[1] . substr($matches[2], 0, 1) . "." . $matches[3];
},
$names
);
答案 1 :(得分:-1)
答案真的很简短:使用HTML解析器(如http://simplehtmldom.sourceforge.net/)
正则表达式和HTML仅在您确定只拆分可预测的代码串时才有效。