我是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]);
}
答案 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]);