如何使用RegEx和Preg_replace更改名称?

时间:2013-11-08 05:11:52

标签: php arrays for-loop preg-replace

我是PHP的新手,所以请光临我。正则表达式示例中使用的此在线示例中的DisplayRow函数从我的数据文件中获取一行输入,并显示结果表的一行的HTML。     我想修改该功能,以便我可以将名称显示为电子邮件链接,使其看起来像userid@ccsf.edu,其中名称“Thomas,Boegel”将是tboegel。

***我的问题:我的preg_replace中的正则表达式模式出了什么问题,为什么名称没有更新。
        ***我有一些代码在表格最右边的变量$ parts内的数组中显示名称。以下是我需要更改的代码:

for ($i = 10; $i < count($parts); $i += 1) { 
    print preg_replace('/^([a-z]+), ([a-z])[a-z]*/i','<a href="mailto:$2$1@ccsf.edu">/a>', $parts[$i]);
}

这是整个功能。我只需要帮助上面的代码块。只有几个名字,它们都是相同的格式jole,billy,我正在尝试将其更改为jbilly内部的电子邮件链接。

function DisplayRow($target) {
    print "<tr>\n";
    $parts = split(" +", $target);
    for ($i = 0; $i < 10; $i+=1) {
      print "<td>$parts[$i]</td>\n";
    }
    print "<td>\n";
    for ($i = 10; $i < count($parts); $i += 1) {
        print preg_replace('/([a-z]+), ([a-z])[a-z]*/i', '<a href="mailto:$2$1@ccsf.edu"> </a>', $parts[$i]);
}  

1 个答案:

答案 0 :(得分:0)

$2$1标记内没有<a>

preg_replace('/\b([a-z]+), ([a-z])[a-z]*/i', '<a href="mailto:$2$1@ccsf.edu">$2$1@ccsf.edu</a>', $parts[$i]);