0

在我的 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>';

是否可以过滤 $names 以获得此结果?

$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>';
4

2 回答 2

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
         );
于 2013-06-28T19:28:11.507 回答
-1

非常简短的回答:使用 HTML 解析器(如http://simplehtmldom.sourceforge.net/

正则表达式和 HTML 仅在您确定您只是在分解一个真正可预测的代码字符串时才起作用。

于 2012-06-13T11:32:26.843 回答