protected function preserveLines($data, $reverse)
{
$search = array("\n", "\r");
$replace = array('\\n', '\\r');
if ($reverse) {
$search = array('\\n', '\\r');
$replace = array("\n", "\r");
}
if (is_string($data)) {
$data = str_replace($search, $replace, $data);
} elseif (is_array($data)) {
foreach ($data as &$value) {
$value = $this->preserveLines($value, $reverse);
}
unset($value);
}
return $data;
}