正規表現の例で使用されているこのオンライン例の DisplayRow 関数は、データ ファイルから 1 行の入力を取得し、結果のテーブルの 1 行の 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]);
}