带加密功能的preg_replace

时间:2015-10-08 01:38:40

标签: php

我正在尝试在字符串中获取一些数据并将其替换为加密版本。

以下是数据样本:

encrypted=1|5|a|6|4|9
encrypted=1|1|a|3|4|9
encrypted=5|5|a|6|6|9

以下是代码现在的样子 -

preg_replace("^(encrypted)(=)(.*)^", 'encrypted='.$this->encrypt_decrypt('encrypt',"$3"), $data);

我一直在阅读preg_replace_callback,但我不确定这是答案,因为我不能在函数内调用$ this并且无法将函数复制到回调中,因为它非常长(100 +行)。

1 个答案:

答案 0 :(得分:1)

使用此回答Codeigniter preg_replace_callback

解决
$that = $this;
$content = preg_replace_callback("^(encrypted)(=)(.*)^", function($matches) use ($that) {
return $that->encrypt_decrypt('encrypt',$matches[3]);
}, $data);