我正在尝试在字符串中获取一些数据并将其替换为加密版本。
以下是数据样本:
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 +行)。
答案 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);