带有多个变量的PHP preg_replace

时间:2018-01-22 22:04:40

标签: php regex preg-replace

我想要使用以下短代码在帖子[amazon region=com asin=xxxxxx]中自动生成Amazon Affiliate链接。

我如何获得'地区' a和' asin'从这个字符串,并将它的每次出现转换为我的PHP函数getAffiliateLink("com","xxxxxxxx")

我可以在页面上有多个不同数字的字符串。

我一直在研究preg_replace和regex,但我无法弄清楚如何为这个特定的例子做这件事。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。因为我想用函​​数替换字符串,所以我必须使用preg_replace_callback()

这是我的工作解决方案:

$content = preg_replace_callback('/\[amazon region=([^\b]+) asin=([^\b]+)\]/', 'callback', $content);

function callback ($matches) {
    print_r($matches);
    return getAffiliateLink("$matches[1]","$matches[2]");
}

echo $content;