0

我有看起来像这个例子的字符串:

$str = "Sally sells [[seashells]] by the [[seashore]]."

我需要将上述字符串转换为:

Sally sells <a href='?action=definition&word=seashells'>seashells</a> by the <a href='?action=definition&word=seashore'>seashore</a>.

请注意方括号之间的单词是如何在锚标记中使用的。

谁能给我方向来解决这个问题?

4

1 回答 1

3

尝试以下操作:

$pattern = "/\[\[([\w-]+)\]\]/";
$replace = "<a href='?action=definition&word=$1'>$1</a>";
$msg = preg_replace($pattern, $replace, $msg);

在这里查看它的实际应用。

请注意,在括号内搜索的标记[\w-]+, 将仅匹配字母A-Z(不区分大小写)、数字0-9、连字符-和下划线_。允许太多其他类型的字符可能意味着必须urlencode在匹配项上使用作为附加步骤。

于 2013-10-02T16:36:59.017 回答