2015-10-08 1 views
1

Я пытаюсь взять некоторые данные в строке и заменить ее зашифрованной версией.preg_replace с функцией шифрования

Вот пример данных:

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

Ok, пусть это будет. :) –

ответ

1

решаемые с помощью этого ответа Codeigniter preg_replace_callback

$that = $this; 
$content = preg_replace_callback("^(encrypted)(=)(.*)^", function($matches) use ($that) { 
return $that->encrypt_decrypt('encrypt',$matches[3]); 
}, $data); 
Смежные вопросы